如何使用PHP File api写入原始字节?

时间:2008-09-16 21:51:46

标签: php file-io

我想将原始字节/字节流写入文件中的位置。 这就是我目前所拥有的:

$fpr = fopen($out, 'r+');
fseek($fpr, 1); //seek to second byte
fwrite($fpr, 0x63); 
fclose($fpr);

这当前写入从字节偏移1开始的实际字符串值“99”.IE,它写入字节“9”和“9”。我只想写实际的一个字节值0x63,恰好代表数字99。

感谢您的时间。

4 个答案:

答案 0 :(得分:7)

fwrite()需要字符串。如果要在文件中写入chr(0x63)字节,请尝试0x63

答案 1 :(得分:4)

那是因为fwrite()期望一个字符串作为它的第二个参数。试着这样做:

fwrite($fpr, chr(0x63));

chr(0x63)返回一个字符串,其中一个字符的ASCII值为0x63。 (因此它会将数字0x63写入文件。)

答案 2 :(得分:1)

您正在尝试将int传递给接受字符串的函数,因此它将被转换为字符串。

这将写下你想要的东西:

fwrite($fpr, "\x63");

答案 3 :(得分:0)

如果您真的想将二进制文件写入文件,我建议您将pack()方法与文件API一起使用。

See this question举个例子。