PHP fopen() 与“wb”不工作

Jus*_*tep 7 php fopen

这是我正在尝试做的事情的一个片段:

$file = fopen($path,  "wb");
fwrite($file, $data);
fclose($file);
Run Code Online (Sandbox Code Playgroud)

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

但我已经明确指定我想要二进制模式。也许我的大脑功能不正常或者其他什么,所以..有人有解决办法吗?

Sha*_*mal -1

您犯了一个典型的错误,即将数据与数据的表示混淆了。

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

$str = "Hello world!";
echo bin2hex($str);      // output:  48656c6c6f20776f726c6421

$file = fopen($path,  "wb");
$data = bin2hex($data);
fwrite($file, $data);
fclose($file);
Run Code Online (Sandbox Code Playgroud)