2010-03-17 64 views
3

字符串解析功能是否有去掉函數名和它們的參數更合理的方式使用正則表達式在PHP?目前,我已經將它逐行分割,這樣我就可以在每一行上都有各自的功能,以便於標記。使用正則表達式在PHP

所以:

doSomeFunction(arg, moreargs, stuff); 
breakSomething(); 
ini_set(include_path, /home/htdocs/); 

成爲

array([0] => 'doSomeFunction(arg, moreargs, stuff);', [1] => 'breakSomething();' and so on... 

我在使用正則表達式有語法越來越函數名狀的真正問題:

$functionfromregex($args); 

的功能構造使用PHP的「變量函數名稱」的能力,所以這是可能的。參數以數組的形式存在,因爲沒有合理的方式將它們粘合起來以收集PHP需要解析它們的方式。真正的缺點是,我不是太熟悉規則表達式,任何幫助將不勝感激,如果你需要的任何其他信息隨時問。

+0

這是在那裏你解析結構化文本和正則表達式是不是要走的路的案件之一。正則表達式不是一個魔術棒,你在涉及文本的每一個問題上都會揮手。 – 2013-09-05 12:37:26

回答

5

如果你想解析PHP,你可以使用token_get_all來得到給定代碼的tokens

+0

這很棒,很簡單。隊友的歡呼聲。 – JonnyLitt 2010-03-17 17:05:37

0

所以我不知道在PHP中,我做在Java類似的東西下面的代碼去掉它以類似的方式:

[^(& & [^)& & [^,] ]施加到FOO(參數1,參數2,參數3)將返回[ 「foo」 的 「參數1」, 「參數2」, 「參數3」]。

我遇到的問題是,這將字符串的所有「(」和「)」,所以沒有辦法知道,如果你的PARAM實際上是一個變量或方法。