我想写一个原字节/字节流的位置在一个文件。这是什么我现:

$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() 办法一起的文件。

看到这个问题 对于一个例子。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top