2
我想計算PHP源代碼中的大括號,所以我最終可以在給定的源代碼中找到方法/函數的結尾。token_get_all()函數不能正常工作
我被建議使用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()
不標記給定的源代碼..?
不要計算大括號,因爲它們會標記其他塊的結尾,而不僅僅是函數的結尾。尋找'T_FUNCTION'標記;-)如果你對其他標記也感興趣[這裏是列表](http://www.php.net/manual/en/tokens.php)與所有的標記標記器識別。 – Havelock