我想寫一個原始的字節/字節流到文件中的一個位置。 這是我目前:如何使用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.
感謝您的時間。
我想寫一個原始的字節/字節流到文件中的一個位置。 這是我目前:如何使用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.
感謝您的時間。
fwrite()
需要字符串。如果要將0x63
字節寫入文件,請嘗試chr(0x63)
。
您試圖將int傳遞給接受字符串的函數,因此它將被轉換爲字符串。
這會寫你想要什麼:
fwrite($fpr, "\x63");
這是因爲fwrite()將需要一個字符串作爲其第二個參數。請嘗試執行此操作:
fwrite($fpr, chr(0x63));
chr(0x63)返回一個字符串,其中一個字符的ASCII值爲0x63。 (所以它會將數字0x63寫入文件。)
如果您確實想寫二進制文件,我建議將pack()
方法與文件API一起使用。
See this question舉例說明。
這取決於endianess。 – Christian 2012-01-22 21:44:18