2009-04-23 73 views
1

此問題旨在討論人們在處理用戶輸入時的個人意見。解析來自用戶輸入的命令

我正在處理的這部分項目以類似於IRC聊天的方式處理用戶輸入。例如,有一組命令和諸如此類的東西,適合聊天,執行動作等

現在,我有幾種選擇從解析此輸入選擇。我可以使用正則表達式,我可以直接解析它(例如,包含所有支持的命令的大型開關語句,只需檢查用戶輸入中的第一個x個字符),或者甚至可能發瘋,並添加類似於Flex的解析器/ Bison實現。我正在考慮的另一個選項是定義XML文件中的所有命令以將它們與代碼實現分開。

那麼,社區的想法是什麼?

+0

這個網站的目的是鼓勵良好的,客觀的答案。我懷疑措辭你的問題是一個明確的討論有關的個人意見會變成不良。我建議它改寫到,「最佳用戶輸入慣例 - PHP」或更具體的東西和客觀衡量。 – 2009-04-23 15:48:53

回答

1

我會帶着一個不錯的混合包。

顯然你必須清理輸入。確保有沒有討厭的東西,取決於輸入要防止SQL注入,XSS,CSRF等的位置...

但是,當您的輸入是乾淨的,你可以去一個正則表達式,命令並獲取所有必要的子匹配(命令參數等),然後獲得某種調度程序切換語句或類似內容。

真的是沒有蓋的所有最佳實踐在這裏,除了總是總是和四人間,始終確保用戶輸入消毒。除此之外,請選擇最適合您的案例。

很明顯,有些人說如果你有問題,並且你正在考慮使用reg exps來解決這個問題,你有兩個問題,但是謹慎使用,他們是有史以來最好的。請記住,正則表達式怪物可以讀得非常快,可讀性很差。