2014-09-23 46 views
0

我有一個網站,用戶可以從輸入表單中搜索文本文件。該網站將搜索發佈到服務器,在該服務器中執行 type命令。轉義正則表達式解析用戶輸入

日誌文件包含特殊字符,例如`[(和某些字符「破發」的grep的功能,有沒有,如果用戶想應該是能夠搜索他們。

的問題是列表在處理數據或內置函數之前需要轉義的字符?escapeshellarg在這種情況下不起作用,我無法在線查找應該轉義的字符列表

+0

你爲什麼使用'shell_exec'?使用PHP內置的'preg_match',並使用'preg_quote'來轉義輸入。 – Barmar 2014-09-23 08:09:36

+0

這些文件非常龐大,而且PHP比grep慢得多 – dukevin 2014-09-23 08:10:28

+1

您可以在調用'escapeshellarg'前嘗試使用'preg_quote'。但是由於PHP的regexp與grep不同,可能會有一些不兼容的地方。 – Barmar 2014-09-23 08:11:39

回答