我想计算 PHP 源代码中的大括号,这样我最终可以在给定的源代码中找到方法/函数的结尾。
有人建议我使用 token_get_all()
函数来完成这项工作。但由于某种原因,它没有将给定的源拆分为 token 。
我使用以下代码来测试它:
<?php
$str = 'class someClass{
public $var1;
private $var2 = null;
public function func1 ( $someVar )
{
echo $someVar;
}
public function func2 ( )
{
return false;
}
}';
$bla = token_get_all ( $str );
echo '<pre>';
print_r ( $bla );
echo '</pre>';
?>
但这会导致:
Array
(
[0] => 311
[1] => class someClass{
public $var1;
private $var2 = null;
public function func1 ( $someVar )
{
echo $someVar;
}
public function func2 ( )
{
return false;
}
}
[2] => 1
)
所以现在我有点坚持这个。为什么 token_get_all()
不标记给定的源代码..?
最佳答案
因为解析器在 HTML 上下文中启动(就像 PHP 本身一样),所以您传递给 token_get_all
的整个字符串实际上是一个 HTML token 。您需要添加<?php
在您的 $str
的开头.
关于php - token_get_all() 函数无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13441227/