PHP-Parser使用

下载安装

Github地址:https://github.com/nikic/PHP-Parser

安装命令

1
php composer.phar require nikic/php-parser

会出现超时问题,可以挂代理下载,也可以本地下载好,在php-parser目录下执行以下命令安装

1
php composer.phar require

或者直接使用bin/php-parse

1
php bin/php-parse test.php

使用

使用以下代码查看语法树

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
use PhpParser\Error;
use PhpParser\NodeDumper;
use PhpParser\ParserFactory;

$code = file_get_contents('./xx.php');

$parser = (new ParserFactory)->create(ParserFactory::PREFER_PHP7);
try {
$ast = $parser->parse($code);
} catch (Error $error) {
echo "Parse error: {$error->getMessage()}\n";
return;
}

$dumper = new NodeDumper;
echo $dumper->dump($ast) . "\n";

出现错误

1
PHP Fatal error:  Uncaught Error: Class 'PhpParser\ParserFactory' not found

要在php文件里包含autoload.php,路径要写好

1
require '/home/glarcy/Downloads/vendor/autoload.php';