Разбор и печать PHP-кода - PullRequest
       1

Разбор и печать PHP-кода

2 голосов
/ 21 февраля 2011

Предпочтительно, я бы хотел решение, которое позволяет мне анализировать PHP из PHP , но любое решение приветствуется.(В качестве примера того, что я ищу, у Руби есть - среди прочих - ruby_parser драгоценный камень.)


Редактировать:

Яищет генерировать абстрактные синтаксические деревья какого-то вида из кода PHP.(И если я не ошибаюсь, я полностью осведомлен о существовании и поведении функции eval.)

Какие есть варианты (если таковые имеются) для анализа PHP-кода в каком-то абстрактном синтаксическом дереве?И какие есть варианты для превращения этих синтаксических деревьев обратно в (читаемый) код PHP?

Ответы [ 3 ]

2 голосов
/ 21 февраля 2011

Редактировать: этот ответ был написан до того, как @pepjin отредактировал свой вопрос и изменил требования. См. комментарии для контекста.


eval() для выполнения кода PHP изнутри PHP.

Для анализа кода PHP на ваш собственный микроязык и т. Д. Вы можете использовать PHP Tokenizer . Список токенов парсера: http://www.php.net/manual/en/tokens.php

2 голосов
/ 16 июля 2014

Токенайзер - это не то же самое, что парсер.Токенайзер просто создает токены, а не в виде дерева.Для тех, кто действительно хочет создать AST для PHP, аналогичный тому, что ruby_parser делает для Ruby, используйте проект PHP-Parser (https://github.com/nikic/PHP-Parser).

Проект PHP-Parser также поставляется с симпатичным принтером, который превращает вашАСТ обратно в PHP.

1 голос
/ 21 февраля 2011

Вы ищете зло Eval () Я верю.

http://php.net/manual/es/function.eval.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...