Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ограничение в php.ini

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Pavelbeginner
Отправлено: 14 Мая, 2012 - 14:04:23
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




Нужно узнать что за ограничение и на что прописано в php.ini
Ситуация такая: есть свой шаблонизатор(использую для создания верстки). Шаблонизатор устроен так, что подгружает все шаблоны, которые лежат в папке шаблонов, затем парсит их и что-то делает. Делал один сайт. Сайт очень большой(по сравнению с предыдущими моими сайтами), около 30 страниц. Ложил в папку с шаблонами все новые и новые страницы, а когда дошел до 26 страницы, то шаблонизатор перестал работать до конца. Методом научного тыка выяснил, что на работу шаблонизатора влияет размер файла. После определенного кол-ва символов в файле ему сносит башню. Если символов меньше определенного числа, то работает все хорошо. То есть скорее всего ограничение в памяти, выделенной под php интерпретатор, т.к. башню шаблонизатору сносит, если я добавлю "лишние символы" в любой из шаблонов(то есть это не ошибка логики шаблонизатора). Подскажите, что же это может быть за ограничение? Шаблонизатор использует регулярные выражения, причем обрабатывает данные из всех шаблонов одновременно(то есть читает строки из шаблонов и склеивает их в одну строку и парсит).
 
 Top
Мелкий Супермодератор
Отправлено: 14 Мая, 2012 - 14:29:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Сделайте phpinfo, посмотрите лимит на память.
Выставьте локально такой же и проверяйте.


-----
PostgreSQL DBA
 
 Top
Pavelbeginner
Отправлено: 14 Мая, 2012 - 14:32:36
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




Дело не в памяти, видимо, т.к. увеличил максимальный объем с 128 Мб до 256 Мб, не помогло.
 
 Top
Мелкий Супермодератор
Отправлено: 14 Мая, 2012 - 14:41:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Значит, берёте логи веб-сервера и читаете. Там должны быть сообщения об ошибках.
Или копируйте остальные настройки и проверяйте.


-----
PostgreSQL DBA
 
 Top
Pavelbeginner
Отправлено: 14 Мая, 2012 - 14:55:01
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




В логе с ошибками нету никаких ошибок. То есть они есть, но они никак не связаны с php. Во всех параметрах, связанных с объемами, увеличил значения, не помогает.
(Добавление)
Например, в файле прописана фраза "hhhhh" - шаблонизатор работает. Добавляем еще один символ "hhhhh" - уже перестает работать. С чем может быть связано, есть идеи?
(Добавление)
Погулял по коду, повыводил различные значения. В итоге выяснил, что содержимое всех шаблонов подгружается и склеивается в одну строку как надо. Значит дело все-таки в коде. Может быть есть какие-то ограничения накладываемые на ф-ции? Например, я использую preg_match_all, может есть ограничение на объем передаваемых данных?
(Добавление)
Обрабатывается ф-цией 390 000 символов за раз, может в этом дело?
 
 Top
Pavelbeginner
Отправлено: 14 Мая, 2012 - 17:29:39
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




Выяснил в чем дело. Как я и предположил в самом конце - дело в ф-цие preg_match_all. А конкретнее - в php.ini указываются настройки работы данной ф-ции и других ф-ций регулярных выражений. Виновником был один из двух параметров: pcre.backtrack_limit или pcre.recursion_limit.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Если скрипт не работает »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB