2011-08-09 96 views
0

我需要一些關於此代碼的幫助。我很確定代碼是正確的,但我可能是錯的。問題在於getSourceCode()並沒有提取URL的全部內容。它只返回三分之一的數據,例如:$ size變量將返回26301,並且返回的數據大小隻會是8900.我已經將php.ini更改爲最大文件大小爲100M,所以我不認爲這是問題。正在讀取來自遠程文件的部分內容(PHP)

private function getSourceCode($url){  
    $fp = fopen($url, "r"); 
    $size = strlen(file_get_contents($url));; 
    $data = fread($fp, $size); 
    fclose($fp); 
    return $data; 
} 

回答

5

好的,好吧,如果你使用file_get_contents你不應該使用fread。

private function getSourceCode($url){  
    return file_get_contents($url); 
} 
2

簡短的答案是該字節!= 1字符串中的字符。您可以使用$ data = file_get_contents($ url)以字符串形式獲取整個文件。

長答案fread正在查找字節數,但是strlen正在返回字符數,並且字符可能大於1個字節,因此您最終可能無法獲取整個文件。或者,您可以使用filesize()以字節而不是strlen()來獲取文件長度。