我需要一些关于此代码的帮助。我很确定代码是正确的,但我可能是错的。问题是getSourceCode()没有提取URL的全部内容。它只返回三分之一的数据,例如:$ size变量将返回26301,返回的数据大小仅为8900.我已将php.ini更改为最大文件大小为100M所以我认为不是问题
private function getSourceCode($url){
$fp = fopen($url, "r");
$size = strlen(file_get_contents($url));;
$data = fread($fp, $size);
fclose($fp);
return $data;
}
答案 0 :(得分:6)
好吧,如果你使用的是file_get_contents
,你也不应该使用fread。
private function getSourceCode($url){
return file_get_contents($url);
}
答案 1 :(得分:2)
简短回答是字符串中的字节!= 1个字符。您可以使用$ data = file_get_contents($ url)将整个文件作为字符串。
长答案fread正在查找字节数但是strlen返回字符数,而字符可能大于1个字节,因此您最终无法获取整个文件。或者,您可以使用filesize()来获取文件长度,而不是strlen()。