Как использовать token_get_all на большой строке в php?

У меня проблемы с анализом больших текстовых строк.

У меня есть эта строка:

$tokens = token_get_all("<?php\n" . $string . "\n?>");

и когда строка маленькая, она работает нормально. Но когда строка размером около 15 МБ, мое приложение падает, показывая только пустую страницу. Если я отлаживаю его с помощью die(), die в верхней части этой строки работает нормально, но когда я записываю его в эту строку, он не работает.

У кого-нибудь есть идеи, как сделать так, чтобы token_get_all мог анализировать большие строки?

1 ответ

В зависимости от используемой версии PHP, 15 МБ может превышать значение memory_limit по умолчанию, определенное в php.ini.

Добавьте эту строку в начало вашего скрипта и попробуйте снова

ini_set('memory_limit', 128M);

Добавляя эту строку, вы меняете объем памяти, доступный для этого скрипта, до 128 МБ.

Другие вопросы по тегам