在 PHP 中,當您需要讀取二進制文件(如圖片、音頻或視頻文件)時,可以使用 readfile()
函數。但是,由于 readfile()
默認以文本模式讀取文件,因此您需要確保在讀取二進制文件時使用正確的編碼和處理方法。
以下是使用 readfile()
處理二進制文件的方法:
file_get_contents()
函數替代 readfile()
。file_get_contents()
可以直接讀取文件內容,并將其作為字符串返回。要讀取二進制文件,可以使用 file_get_contents()
的 false
參數,這將返回一個字符串而不是直接輸出文件內容。$binary_data = file_get_contents('path/to/your/binaryfile.bin', false, null, 0, null);
readfile()
,可以在輸出文件內容之前使用 ob_start()
和 ob_clean()
函數來捕獲輸出緩沖區的內容。然后,您可以對捕獲的內容進行處理,例如將其保存到數據庫或轉換為適當的二進制格式。ob_start();
readfile('path/to/your/binaryfile.bin');
$binary_data = ob_get_clean();
fopen()
、fread()
和 fclose()
函數手動讀取二進制文件。這種方法提供了更多的控制,允許您在處理文件內容時執行其他操作。$file = fopen('path/to/your/binaryfile.bin', 'rb');
$binary_data = fread($file, filesize('path/to/your/binaryfile.bin'));
fclose($file);
在這些方法中,建議使用第一種方法(file_get_contents()
),因為它更簡潔且易于理解。如果您需要對文件內容進行特殊處理,可以考慮使用第三種方法(fopen()
、fread()
和 fclose()
)。