Парсинг php-скрипта

master_x

Pitavale XXI wieku
Парсинг php-скрипта

Пишу парсер php скриптов и вот задался вопросом: как определить что оператор находится вне строки?
Пример:
Код:
// regexp найдет этот кусок
$str=" include('page.php'); "

// и этот тоже
include('page.php');
если банально искать регулярками, то естественно находится два совпадения, хотя правильное только одно, второе.
Если посимвольно перебирать строку, то все получается, только довольно таки медленно, так как ПОЧТИ на каждый символ идет проверка...
Как быть?
И вообще кто-нибдуь может посоветовать статьи или еще что по разбору строк БЕЗ регулярок.
 

master_x

Pitavale XXI wieku
hermit_refined
пасиб, буду смотреть, знал что существует расширение, но почему-то всегда думал, что оно в PECL.

-~{}~ 15.01.07 02:31:

а вот теперь как бы прикрутить это все вместе. У меня идет поиск и замена инклюдов... в результате поиска я получаю позиции этих инклюдов... т.е. tokenizer как я вижу тут никак не поможет.
 

hermit_refined

Отшельник
why?
например, можно пройтись по массиву, возвращаемому token_get_all(), и склеить заново (заменяя инклюды). либо ещё что-нибудь, смотря что будет эффективней.
 
Сверху