我試圖讓它檢索服務器上的圖像文件,但如果圖像文件的名稱中有一個空格,它將無法工作..例如,死亡與空氣之間存在一個空間,即使我在添加%20後轉義它,函數返回一個空字符串..但是如果它是一個沒有空格的文件,如'http://www.m.trialsite.com/images/thumb/Espresso.jpg';它會工作! ..我哪裏錯了?爲什麼PHP不會讀這個文件?
$filename = 'http://www.m.trialsite.com/images/thumb/dead air.jpg';
function readfile_chunked($filename,$retbytes=true) {
$chunksize = 1*(1024*1024); // how many bytes per chunk
$buffer = '';
$cnt =0;
// $handle = fopen($filename, 'rb');
$filename = str_replace(' ','%20',$filename);
$handle = fopen($filename, 'rb');
if ($handle === false) {
return false;
}
$filename = str_replace(' ','%20',$filename);
while (!feof($handle)) {
$buffer = fread($handle, $chunksize);
echo $buffer; var_dump($buffer); exit;
ob_flush();
flush();
if ($retbytes) {
$cnt += strlen($buffer);
}
}
$status = fclose($handle);
if ($retbytes && $status) {
return $cnt; // return num. bytes delivered like readfile() does.
}
return $status;
}
遠程文件使用本地文件操作是巨大的kludge,並且有一些完全不可預知和不可處理的奇怪現象,我希望PHP從未實現過這些包裝。使用cURL。 – Sammitch
出於好奇:你能直接在瀏覽器中打開文件嗎? – Lasse
是的,我可以在瀏覽器上看到它.. – user3097566