fopen
не работает, когда я пытаюсь читать файл с очень умеренным размером в PHP
. A 6 meg file
заставляет его задыхаться, хотя мелкие файлы вокруг 100k
в порядке. я читал, что иногда необходимо перекомпилировать PHP
с флагом -D_FILE_OFFSET_BITS=64
, чтобы читать файлы более 20 концертов или что-то нелепое, но разве у меня нет проблем с файлом размером 6 мегабайт? В конце концов, мы захотим прочитать файлы размером около 100 мегабайт, и было бы неплохо открыть их, а затем прочитать их по строкам с помощью fgets, поскольку я могу делать с меньшими файлами.Чтение очень больших файлов в PHP
Каковы ваши трюки/решения для чтения и выполнения операций с очень большими файлами в PHP
?
Обновление: Вот пример простого кода, который не работает в моем 6-мегабайтном файле - PHP, похоже, не выдает ошибку, он просто возвращает false. Может, я делаю что-то очень глупое?
$rawfile = "mediumfile.csv";
if($file = fopen($rawfile, "r")){
fclose($file);
} else {
echo "fail!";
}
Еще одно обновление: Спасибо всем за вашу помощь, она оказывается что-то невероятно тупой - проблема с разрешениями. У моего маленького файла необъяснимо были права на чтение, если в более крупном файле этого не было. Doh!
Вы просто пытаетесь передать файл через? то есть. Скачать? Или вы на самом деле разбираете данные в файлах для какой-то цели? Спасибо. – DreamWerx 2008-10-02 13:21:38
он не должен прерываться без создания предупреждения/ошибки. Пожалуйста, включите все ошибки с помощью error_reporting (E_ALL) и убедитесь, что display_errors настроены на отображение в браузере или проверьте журнал ошибок веб-серверов. – 2008-10-02 13:54:13