Только частичное содержимое из удаленного файла читается (PHP) - PullRequest
0 голосов
/ 09 августа 2011

Мне нужна помощь с этим кодом.Я уверен, что код правильный, но я могу ошибаться.Проблема в том, что 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;
}

Ответы [ 2 ]

6 голосов
/ 09 августа 2011

Хорошо, хорошо, если вы используете file_get_contents, вам не следует использовать и фред.

private function getSourceCode($url){     
    return file_get_contents($url);
}
2 голосов
/ 09 августа 2011

Короткий ответ: этот байт! = 1 символ в строке.Вы можете использовать $ data = file_get_contents ($ url), чтобы получить весь файл в виде строки.

Фред длинного ответа ищет количество байтов, но strlen возвращает количество символов, и символ может быть больше 1 байта, поэтому вы можете не получить весь файл.В качестве альтернативы вы можете использовать filesize (), чтобы получить длину файла в байтах вместо strlen ().

...