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

时间:2020-03-05 18:57:18  来源:igfitidea点击:

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

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

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

谢谢你的时间。

解决方案

回答

fwrite()接受字符串。如果要向文件写入" 0x63"字节,请尝试" chr(0x63)"。

回答

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

这会写你想要的东西:

fwrite($fpr, "\x63");

回答

这是因为fwrite()期望将字符串作为第二个参数。尝试这样做:

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

chr(0x63)返回一个字符串,该字符串包含一个ASCII码为0x63的字符。 (因此它将数字0x63写入文件。)