2008-09-16 234 views
2

我想寫一個原始的字節/字節流到文件中的一個位置。 這是我目前:如何使用PHP文件API來寫入原始字節?

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

目前這寫道:「99」開始的字節的實際字符串值偏移1. IE,將其寫入字節「9」和「9」。我只想寫出實際的一個字節值0x63,恰好代表數字99.

感謝您的時間。

回答

7

fwrite()需要字符串。如果要將0x63字節寫入文件,請嘗試chr(0x63)

1

您試圖將int傳遞給接受字符串的函數,因此它將被轉換爲字符串。

這會寫你想要什麼:

fwrite($fpr, "\x63"); 
4

這是因爲fwrite()將需要一個字符串作爲其第二個參數。請嘗試執行此操作:

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

chr(0x63)返回一個字符串,其中一個字符的ASCII值爲0x63。 (所以它會將數字0x63寫入文件。)

+0

這取決於endianess。 – Christian 2012-01-22 21:44:18

0

如果您確實想寫二進制文件,我建議將pack()方法與文件API一起使用。

See this question舉例說明。

相關問題