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!";
}
Еще одно обновление: спасибо за вашу помощь, это оказалось чем-то невероятно глупым - проблема с разрешениями. У моего маленького файла необъяснимо были права на чтение, если в более крупном файле этого не было. Doh!