Ответ 1
Вы можете использовать parsekit
, который доступен через pecl, который можно загрузить с сайт pecl или установлен с помощью:
sudo pecl install parsekit
Получите OPcodes из строки кода PHP во время выполнения:
Вы можете использовать parsekit_compile_string
Синтаксис для этой команды:
array parsekit_compile_string ( string $phpcode [, array &$errors [, int $options = PARSEKIT_QUIET ]] )
Параметры:
phpcode
Строка, содержащая phpcode. Подобно аргументу eval().
Ошибки
2D-хэш ошибок (включая фатальные ошибки), встречающиеся во время компиляции. Возврат по ссылке.
Параметры
Один из PARSEKIT_QUIET или PARSEKIT_SIMPLE. Для получения переменной степени детализации возвращаемого результата.
Возвращаемые значения
Возвращает сложную многоуровневую структуру массива, как описано ниже.
Пример использования этого параметра:
<?php
$ops = parsekit_compile_string('
echo "Foo\n";
', $errors, PARSEKIT_QUIET);
var_dump($ops);
?>
Выход слишком длинный для включения в этот ответ, но доступен на странице
Получить OPcodes из файла PHP во время выполнения:
Вы можете использовать parsekit_compile_file
Очень похож на описанный выше подход, но анализирует файл вместо строки.