首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP ()与"wb“不起作用

PHP ()与"wb“不起作用
EN

Stack Overflow用户
提问于 2015-08-26 07:38:57
回答 3查看 12.9K关注 0票数 6

下面是我想要做的事情的一个片段:

代码语言:javascript
复制
$file = fopen($path,  "wb");
fwrite($file, $data);
fclose($file);

很简单。但是当我打开创建的文件时,我看到0x0D插入在0x0A之前。我知道,如果我在没有二进制模式的情况下打开文件,就会发生这种情况。

但是我已经明确地指定了我想要二进制模式。也许我的大脑功能不正常,所以..。有人找到解决办法了吗?

EN

回答 3

Stack Overflow用户

发布于 2015-08-26 08:56:24

结果,由于一些奇怪的原因,问题出在我的$path上。我的$path值是"temp“。

它将生成名为"temp“的文件,但拒绝在二进制模式下打开它。赋予文件一个像"temp.bin“或"temp.tmp”这样的扩展名,允许它在二进制模式下工作。

问题现在已经解决了,但是我仍然在想为什么是这样工作的。

票数 0
EN

Stack Overflow用户

发布于 2020-01-25 11:16:26

看来问题在于$path。请确保您已给出正确的文件路径。

如果要使用动态文件名定义$path,请使用/在文件名之前使用。例如,$var = "/var/www/html/projectFolder/folderFile/“。"Filename.fileformat“

如果在重定向上下文中使用URL,则根目录('/')引用域的根目录。用于链接文件或图像的路径以及包含和要求指令的路径也是如此。

票数 0
EN

Stack Overflow用户

发布于 2015-08-26 07:48:19

你犯了一个典型的错误,就是把数据和数据的表示混淆在一起。

假设你有一个文本文件。如果您在记事本中打开它,您将看到以下内容:

代码语言:javascript
复制
$str = "Hello world!";
echo bin2hex($str);      // output:  48656c6c6f20776f726c6421

$file = fopen($path,  "wb");
$data = bin2hex($data);
fwrite($file, $data);
fclose($file);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32220647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档