题
我想写一个原字节/字节流的位置在一个文件。这是什么我现:
$fpr = fopen($out, 'r+');
fseek($fpr, 1); //seek to second byte
fwrite($fpr, 0x63);
fclose($fpr);
这一目前的写实际上串值"99"开始在byte offset1.即,它写字节"9"和"9".我只想写实际的一个字节的数值器0x63对其进行而发生的代表数目99.
感谢您的时间。
解决方案
fwrite()
需要串。尝试 chr(0x63)
如果你想要写 0x63
字节的文件。
其他提示
那是因为fwrite()预计一串为其第二个论点。试试这样做,而不是:
fwrite($fpr, chr(0x63));
chr(器0x63对其进行)returns a string一个字与ASCII值器0x63对其进行.(所以它将会编写的数量器0x63对其进行到文件中。)
你是试图通过一个int能接受串,所以它正在转换成一串。
这将会写什么,你想:
fwrite($fpr, "\x63");
如果你真的想二进制编写的文件,我建议使用 pack()
办法一起的文件。
看到这个问题 对于一个例子。
不隶属于 StackOverflow