2010-04-22 152 views
0

系統文件內容部分,我有一個config文件,在etc/稱爲1.conf閱讀與PHP

這裏是內容..

[2-main] 
exten => s,1,Macro(speech,"hi {$VAR1} how is your day going?") 
exten => s,4,Macro(dial,2,555555555) 
exten => s,2,Macro(speech,"lkqejqe;j") 
exten => s,3,Macro(speech,"hi there") 
exten => s,5,Macro(speech,"this is a test ") 
exten => s,6,Macro(speech,"testing 2") 
exten => s,7,Macro(speech,"this is a test") 
exten => 7,1,Goto(2-tester2,s,1) 
exten => 1,1,Goto(2-aa,s,1) 
[2-tester] 
[2-aa] 
exten => 1,1,Goto(2-main,s,1) 



我怎麼能讀在演講之間的內容例如..

exten => s,6,Macro(speech,"testing 2") 

剛剛從那得到"testing 2"

預先感謝您!

+0

有很多'speech',這'speech'?所有? – codaddict 2010-04-22 07:10:46

+0

Theres是一個獨特的數字,所以你可以選擇一個這樣的方式 – 2010-04-22 07:11:54

回答

2

如果我沒有理解錯,這

$text = file_get_contents('/etc/1.conf'); 
preg_match_all('/speech,"(.*)"/', $text, $match); 

將填補從語音線路中的全部文本$match陣列。具體來說,$match[1]將只包含引號內的字符串數組,這樣你就可以方便性和易讀做到這一點:

$speeches = $match[1]; 
echo $speeches[0]; // or 1 or 2 etc. 
+0

好的謝謝你! 如果它在[2-aa]而不是[2-main]下面呢?你會怎麼做? – 2010-04-22 07:18:23

+1

這個正則表達式匹配包含'speech'的每一行,後面跟着一個逗號和一個用雙引號括起來的字符串,無論它出現在文件中何處。 – 2010-04-22 07:22:17

+0

啊,我明白了。 那麼它爲我打印出「語音」,測試2「」。 我該如何打印出測試2的「」之間的內容? – 2010-04-22 07:32:20