我有一個文本字符串已被修改爲網頁安全的URL,即非字母數字的被轉換爲「_」。通配符PHP文本搜索
我想要做的是尋找原來的名字被改之前,這意味着我需要某種形式的通配符搜索即
我有什麼
test__mytest
隨着通配符
test??mytest
的〜應變克每升將與通配符搜索
test: mytest
誰能告訴我如何在PHP中實現這一發現? 謝謝
我有一個文本字符串已被修改爲網頁安全的URL,即非字母數字的被轉換爲「_」。通配符PHP文本搜索
我想要做的是尋找原來的名字被改之前,這意味着我需要某種形式的通配符搜索即
我有什麼
test__mytest
隨着通配符
test??mytest
的〜應變克每升將與通配符搜索
test: mytest
誰能告訴我如何在PHP中實現這一發現? 謝謝
可能已經找到解決方案here 我會更新,如果我得到它的工作。
編輯:這是我的解決方案
$searchstring = "/".str_replace("_","(.?)", escape_string_for_regex($match))."/";
這將替換所有_與在那個地方的單個字符的搜索。 然後,我使用以下行來測試$ searchstring對測試字符串。
if (preg_match($searchstring, $matchtitle))
另一種方法可能是編碼特殊字符,而不是將它們轉換爲下劃線。那麼你不需要通配符,你只需要搜索編碼值。
例如,測試%3A%20page
這也將阻止如果你試圖轉換以下兩成頁,你會遇到的問題:
測試:頁
測試頁
他們都會變成test_page,並且空間/時間的連續性將處於危險之中。可能不太可能,但仍然不受歡迎。
不幸的是我無法控制編碼,所以我必須使用wilcards。不過謝謝 – Chris 2010-03-21 23:16:08
escape_string_for_regex應該是'preg_quote($ match,'/')'。 (除非你在你自己的功能中使用它)。 – mcrumley 2010-03-22 02:12:19