我使用以下代碼檢查刺痛并在文本中突出顯示找到的刺痛:
echo preg_replace("/\b([a-z]*${fwcode}[a-z]*)\b/i","<font color ='red'><b>$1</b></font>",$value);
當我輸入僅搜索一個特殊字符(如 / 或 * )時,問題就出現了。然后給我一個錯誤:
警告:preg_replace(): Unknown modifier '[' in C:\xampp... 但是,如果我嘗試搜索“test/test”,一切正常,沒有錯誤。
問題是我需要在文本字串中搜索: location*code/1334 -> 并且如果它們包含特殊字符,則不能突出顯示它們。也希望如果用戶只輸入搜索引數 / 或 * 告訴他:沒有找到,而不是錯誤。
完整代碼:
$found = false;
foreach ($arr_string as $value) {
if(stripos($value, $text) !== false) {
echo preg_replace("/\b([a-z]*${fwcode}[a-z]*)\b/i","<font color ='red'><b>$1</b></font>",$value);
$found = true;
}
}
if (!$found) {
echo "No such word";
}
--- ? $text 是我們的搜索變數,fwcode 是搜索框的名稱。
謝謝你。
問題是我需要在文本字串中搜索: location*code/1334 -> 并且如果它們包含特殊字符,則不能突出顯示它們。也希望如果用戶只輸入搜索引數 / 或 * 告訴他:沒有找到,而不是錯誤。
uj5u.com熱心網友回復:
如果您的 $fwcode 變數可以包含在正則運算式中具有特殊含義的字符,您必須轉義 $fwcode。preg_quote函式執行此操作。
$fwcode = preg_quote($fwcode,"/");
//.. your preg_replace
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/522372.html
標籤:php代替特点预替换符号
上一篇:PHPpost請求,總是收到空值
下一篇:在PHP中將字串轉換為整數?
