我想在PHP源代码中计算大括号,所以我最终可以在给定的源代码中找到方法/函数的结尾。
我被建议使用token_get_all()
功能来完成这项工作。但由于某种原因,它并没有将给定的源分成标记。
我正在使用以下代码进行测试:
<?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()
没有标记给定的源代码..?
答案 0 :(得分:2)
因为解析器在HTML上下文中启动(就像PHP本身一样),所以传递给token_get_all
的整个字符串实际上是一个HTML令牌。您需要在<?php
开头添加$str
。