АРМАДА
PHP, очень большая переменная (4,8 МБ), не хочет работать
Новая тема Написать ответ Advanced Hosters - профессиональный хостинг

Yabuti
V.I.P.
Зарегистрирован: 28.11.2008
Сообщений: 16263
Contest (Сумма: 2)
Обратиться по нику
# Добавлено:Пт Июл 04, 2014 5:13 pmДобавить в избранноеОтветить с цитатой
Всем привет!
Пишу скрипт, обрабатывающий данные из файла. Файл весит 4,8 мегабайта, целиком помещается в переменную.
Проблема в том, что скрипт не хочет работать с такой большой переменной.
Уменьшаю размер файла до 124 килобайта - отлично работает.
Возвращаю данные до 4,8 мега - вновь не хочет работать.

Перегонять в БД не получится, т.к. там неструктурированный контент, одна большая кучка текста.

Подскажите, что можно сделать, какие настройки php.ini покрутить, чтобы скрипт мог обрабатывать такую большую переменную?

Время выполнения скрипта стоит безлимитно:
Код:
set_time_limit (0);
ini_set('max_input_time', '0');



Кодировка файла ASCII.

Данные беру file_get_contents().

Большое спасибо! Drinks or Beer
Ксен ВПС и выделенные серверы от PQCService.net с бесплатным администрированием в 7 локациях, icq: 87244588
--

JM
Гуру
Зарегистрирован: 25.08.2006
Сообщений: 1382
Обратиться по нику
# Добавлено:Сб Июл 05, 2014 5:31 pmОтветить с цитатой
ini_set("memory_limit","128M");
Спасет отца русской демократии Smile
Конвертит мобильный траф как зверь!!!
VDS и домены от AHnames.com - лучшие решения по доступным ценам

Yabuti
V.I.P.
Зарегистрирован: 28.11.2008
Сообщений: 16263
Contest (Сумма: 2)
Обратиться по нику
# Добавлено:Вс Июл 06, 2014 12:16 amОтветить с цитатой
JM, не, не помогает, я пробовал и в скрипте задавать размер, и в php.ini.
Наверное, придется делить файлы на несколько, чтобы мог обработать их скрипт.
Ксен ВПС и выделенные серверы от PQCService.net с бесплатным администрированием в 7 локациях, icq: 87244588
--

redline
Свой
Зарегистрирован: 10.08.2007
Сообщений: 2
Обратиться по нику
# Добавлено:Вс Июл 06, 2014 8:47 amОтветить с цитатой
Читать файл по-строчно?

JM
Гуру
Зарегистрирован: 25.08.2006
Сообщений: 1382
Обратиться по нику
# Добавлено:Вс Июл 06, 2014 9:46 amОтветить с цитатой
Yabuti, А какая ошибка вылезает или просто ничего не вылезает?
Я читал и по 10мб файлы как помню Smile
Сделай filesize($file_loc)
Имя должно совпадать.
Конвертит мобильный траф как зверь!!!
VDS и домены от AHnames.com - лучшие решения по доступным ценам

Yabuti
V.I.P.
Зарегистрирован: 28.11.2008
Сообщений: 16263
Contest (Сумма: 2)
Обратиться по нику
# Добавлено:Вс Июл 06, 2014 4:50 pmОтветить с цитатой
JM, по размеру файла ошибку или варнинг не выдает, а вот дальше идет его сортировка, там выдает ошибку, что нет аргумента для выполнения оператора.
filesize() выдает результат: 5126914.

Я поделил файл на 5 файлов по 1,2 мега и он нормально их обработал.
Не знаю, почему не хочет такие большие файлы обрабатывать, в настройках-то размер памяти большой.

redline, не, не вариант, т.к. там куча текста, так бы я его вообще в БД загнал и через SQL-запросы работал.
Ксен ВПС и выделенные серверы от PQCService.net с бесплатным администрированием в 7 локациях, icq: 87244588
--

JM
Гуру
Зарегистрирован: 25.08.2006
Сообщений: 1382
Обратиться по нику
# Добавлено:Вс Июл 06, 2014 4:58 pmОтветить с цитатой
error_reporting(255);
и еще разок глянь че выдаст
Конвертит мобильный траф как зверь!!!
VDS и домены от AHnames.com - лучшие решения по доступным ценам

Yabuti
V.I.P.
Зарегистрирован: 28.11.2008
Сообщений: 16263
Contest (Сумма: 2)
Обратиться по нику
# Добавлено:Вс Июл 06, 2014 5:11 pmОтветить с цитатой
JM, выдает Undefined variable для строки, где выполняю функцию names_to_uppercase() для массива (заменяет названия стран на названия с заглавной буквы).
Странно, но до этого массив обрабатывается стандартными функциями strtolower() и ucfirst() и на них ошибку не выдает.
Да и ладно, самое главное, работает с файлами до 1,2 мегабайта и нормально :thup:
Ксен ВПС и выделенные серверы от PQCService.net с бесплатным администрированием в 7 локациях, icq: 87244588
--
Новая тема Написать ответ    ГЛАВНАЯ ~ ТЕХНИЧЕСКИЕ ВОПРОСЫ

Перейти:  





Генеральный спонсор



Партнеры