2012-05-29 70 views
0

我正在開發一個定製的CMS,它有一些內置的模塊(日曆,天氣等),我們希望允許最終用戶插入到他們的內容中。他們可以使用CKEDITOR輸入內容。如何用php解析用戶輸入的標籤

尋找一些技巧:

  1. 什麼是輸入這些代碼的推薦語法?我們需要檢索模塊名稱和任何相關參數。正在考慮類似於:{{module-name,width = 100,height = 200,items = 5}}
  2. 什麼PHP函數最適合解析這些?

我知道那裏有一些模板庫可以提供這種類型的功能,但是在這一點上我們想嘗試自己構建這個部分。

回答

1

選擇在您的項目的其他地方找不到意外使用的任何語法。雙花括號可能很好。

用非貪婪匹配正則表達式來抓住每個

$matches = array(); 
preg_match("/\{\{(.*?)\}\}/", $content, $matches); 

// or use the match all the grab all of them 
preg_match_all("/\{\{(.*?)\}\}/", $content, $matches); 

從那裏膽量,你可以簡單地用逗號將它們分割和處理個人令牌

$tokens = split(",", $module); 
$module_name = array_shift($tokens); 
foreach ($tokens as $token) { 
    // process the token 
} 
+0

謝謝,這就是我一直在尋找的。 我的代表太低了,但至今我只提高了你的聲望,你是唯一理解問題的人。 – DLL

+0

不用擔心 - 我還在建立聲望:)話雖如此,我喜歡這個stackoverflow是所有關於知識和互相幫助,而不是升級:) –

+0

同意!再次感謝。 – DLL

2

解析這樣的(或類似的)輸入沒有內建的方式。你將不得不使用一些模板庫或自己編寫一個解析器。

+0

不知道爲什麼這個迴應得到了代表點...它不回答任何問題或提供任何有用的反饋。 – DLL