这是我正在尝试做的事情的一个片段:
$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)