如何列出文件中的所有PHP变量?

And*_*rei 1 php variables templates function

我有一个PHP变量里面的PHP文件.
例:

Hi <?=$username?>,
Can you please send me an email ?
Run Code Online (Sandbox Code Playgroud)

我想从外部文件列出此文件中的每个PHP变量.
会回来的东西:

Array(
   'username'
);
Run Code Online (Sandbox Code Playgroud)

我知道有一个PHP函数调用get_defined_vars,但这是一个外部文件.
有没有办法从外部文件中获取所有PHP变量?

谢谢

njb*_*air 6

使用file_get_contents()preg_match_all():

$file = file_get_contents('file.php'); 
preg_match_all('/\$[A-Za-z0-9-_]+/', $file, $vars);

print_r($vars[0]);
Run Code Online (Sandbox Code Playgroud)


mar*_*rio 5

根据预期的准确性,位token_get_all()遍历将为您提供变量基本名称列表:

print_r(
    array_filter(
        token_get_all($php_file_content),
        function($t) { return $t[0] == T_VARIABLE; }
    )
);
Run Code Online (Sandbox Code Playgroud)

只是过滤掉[1]那个数组结构.

弹性稍差但有时仍然合适的是基本的正则表达式,它还允许更容易地提取数组变量或对象语法.