我正在替换$newstring
中与'##'匹配的单词,这将取代localhost上的所有单词
我在现场服务器上运行此代码时成功但忽略了很多单词。
任何可能导致此问题的建议或我如何解决这个问题?
for($i=0;$i<count($result);$i++)
{
$commanword = trim(strtolower($result[$i]['Words']));
$newstring = preg_replace("/\b".$commanword."\b/i", '##', $newstring);
}
答案 0 :(得分:1)
试试这个:
for($i=0;$i<count($result);$i++)
{
$commanword = trim(strtolower($result[$i]['Words']));
$pre = "/\\b" . $commanword . "\\b/i";
$newstring = preg_replace($pre, '##', $newstring);
}
答案 1 :(得分:1)
试试这个:
foreach($result as $r) {
$commanword = trim(strtolower($r['Words']));
$newstring = preg_replace("/\\b$commanword\\b/i", '##', $newstring);
}
那里有一些风格上的变化。 (我想为$ r一个更好的名字,但我不知道它代表什么)。然而,实质性的改变是你错过了'\ b'模式的反斜杠。双引号字符串的解释在转到正则表达式函数之前将“\ b”变为“b”。
答案 2 :(得分:1)