如何用php在一个文件中写入非ASCII数据

时间:2012-05-14 16:46:25

标签: php binary-data

我必须用php写一个二进制文件,但我认为我没有使用正确的方法。

我使用这个功能:

$ptr = fopen("file.txt", 'wb');
fwrite($ptr, $Str);
fclose($ptr); 

我写这个字符串(0和1的混乱表示):

$Str="00000001001110000000000100000100000000000000001000000010000000010000001100000101000000000000010000000001000000000000010100000";

我认为用OpenOffice打开文件我不会看到0和1的文本,但我确信我看到了一个混乱的字符序列。 为什么我在开放式办公室看到零和一个?如何用php编写原始数据?

2 个答案:

答案 0 :(得分:1)

如果您在文件中写入文本,即使以二进制模式打开,您也会在文件中获得文本。您的0不会存储为零位,而是存储为0字符的ASCII表示。

在PHP中使用数字的二进制格式,例如:

$var = OxFF; // equals to 1111 1111 in binary.

More in the manual

答案 1 :(得分:1)

您可以使用chr()功能编写任何字符。

或者,您可以执行"\x0A"之类的操作(这是换行符)。