fopen не работает, когда я пытаюсь прочитать файл очень среднего размера в PHP. A 6 meg file заставляет его задыхаться, хотя файлы меньшего размера вокруг 100k вполне подойдут. Я читал, что иногда необходимо перекомпилировать PHP с флагом -D_FILE_OFFSET_BITS=64, чтобы читать файлы размером более 20 гигабайт или что-то нелепое, но разве у меня не должно быть проблем с файлом 6 мегабайт? В конце концов, мы захотим читать файлы размером около 100 мегабайт, и было бы неплохо иметь возможность открывать их, а затем читать их построчно с помощью fgets, как я могу делать с файлами меньшего размера.
Каковы ваши приемы / решения для чтения и выполнения операций с очень большими файлами в PHP?
Обновление: вот пример простого кодового блока, который не работает в моем 6-мегабайтном файле - PHP, похоже, не выдает ошибку, он просто возвращает false. Может я делаю что-то предельно тупое?
$rawfile = "mediumfile.csv";
if($file = fopen($rawfile, "r")){
fclose($file);
} else {
echo "fail!";
}
Еще одно обновление: спасибо всем за вашу помощь, это действительно оказалось чем-то невероятно глупым - проблема с разрешениями. У моего маленького файла необъяснимым образом были права на чтение, а у большого файла - нет. Дох!