Не гразится файл в массив $lines = file($filname);

alex_gen

Новичок
Нестабильно грузится файл в массив $lines = file($filname);

Суть в следующем:
Требуется загрузить файл в массив для дальнейшей обработки, -но php код отрабатывает стабильно(грузит все строки в массив из файла) только тогда, когда на сервере не выполняется больше никаких php скриптов(Работа с бд ). Если чето еще обрабатывается, то в массив не догружается энное количество строк из файла(от1000-до 40000 строк)
Пробовал грузить блокировав файл, построчно через while, полностью в строку file_get_contents, если никаких скриптов не выполняется(нет обращений к базе php скриптов),во всех вариантах грузится полностью, если исполняется паралельно еще скрипт, недогружается идентичное количество строк. в php.ini 5M файлы не больше 4М
 

Фанат

oncle terrible
Команда форума
можно поподробнее вот про это:
если исполняется паралельно еще скрипт, недогружается идентичное количество строк
а то не очень понятно. идентичное чему?
 

Zetruger

ivan.chistyakov.name
40000 - вы видимо пошутили?
а базу данных использовать не пробовали?
можт скрипт так долго выполняется, что перестает работать по таймауту?
никаких сообщений об ошибках нету?
error_reporting правильное значение имеет?
что и в логе пусто?
 

alex_gen

Новичок
Идентичное количество строк нескольким вариантам загрузки(Пробовал грузить блокировав файл, построчно через while, полностью в строку file_get_contents)
строки короткие(50 символов), ошибок нет никаких(всмысле не выдает), да и по времени все проходит одинаково, межет запарка в настройках apache или php?
 

alex_gen

Новичок
В логе ничего нет, если файл не догружаетя, записи об этой недозагрузке нет(apache).
Выводить на экран все ошибки посредством
ini_set('display_errors',1);
error_reporting(E_ALL ^E_NOTICE);
-тоже не начто не ругается
error_reporting(E_ALL);- анологично,
 

Фанат

oncle terrible
Команда форума
в общем, я думаю, что твоя диагностика неверна.
скриптам просто не хватает памяти, а ты почему-то впомнил о каких-то параллельных скриптах.

читай файл построчно.
 

alex_gen

Новичок
*****
скриптам просто не хватает памяти
Какой памяти?
memory_limit = 16M ;
Где посмотреть и увеличить?
 

kvf77

Red Devil
alex_gen
кто мешает обрабатывать такой большой файлпострочно? зачем он тебе сразу весь в памяти?
 

alex_gen

Новичок
использовал и
<?php
$handle = fopen("/tmp/inputfile.txt", "r");
$i=0
while (!feof($handle)) {
$buffer[$i] = fgets($handle, 65);//65символов
}
fclose($handle);
?>
 

Фанат

oncle terrible
Команда форума
вот и прекрасно.
используй этот код, убери блокировки, и спокойно работай.
а если появятся глюки, то обратись к психиатру.
 

alex_gen

Новичок
Я это использовал до того как обратится сюда, все равно из 3-х раз че-нить не догрузит.
 
Сверху