我創建了一個使用PHP和XML的單詞字典。用戶在網頁表單上的輸入框中輸入查詢,並將該值與使用PHP的XML文件中的單詞進行比較。任何與搜索詞匹配的標籤都會返回到HTML表格中。包含撇號的相同字符串的比較失敗
整體搜索工作正常,只有一個主要問題。我有一個選項,用戶可以檢查以查找完全匹配。當此框被選中時,PHP腳本會進行簡單的if ($searchterm == $xmlTagNodeValue)
比較。它會正確返回每個字符串,包括帶有非字母字符(如連字符和下劃線)的字符串,並帶有一個例外:包含撇號的字符串。
換句話說,can't
輸入到輸入框在某種程度上是不是在XML文件中等於can't
。
我完全失敗。我絕對肯定這是兩個字符串中的相同字符。我甚至嘗試通過複製和粘貼XML文件中的值來對輸入框的值進行硬編碼,並在相同的文本編輯器中打開這兩個文件。但是比較總是返回錯誤。
我可以想象的唯一的事情就是它是某種編碼問題,並且這些字符可能看起來相同但具有不同的值。但是,XML文件保存爲UTF-8(如果相關,則不包含BOM),並且網頁正在以UTF-8格式查看,所以我不確定我還能做什麼。
任何逃脫在某個點上? – 2011-12-28 02:14:44
你使用十六進制編輯器來確認兩個'''有相同的代碼點嗎? – alex 2011-12-28 02:15:20
嗯......有趣。我用'filter_input'和'FILTER_SANITIZE_STRING'來抓取輸入。當我停止這樣做並僅使用'$ _REQUEST'時,字符串現在顯示爲'can''t',在撇號之前帶有反斜槓。現在,我只需要一種方法來弄清楚如何阻止它...... – 2011-12-28 02:24:16