preg_replace无法作为localhost在服务器上运行?

时间:2013-09-19 11:58:38

标签: php preg-replace

我正在替换$newstring中与'##'匹配的单词,这将取代localhost上的所有单词 我在现场服务器上运行此代码时成功但忽略了很多单词。

任何可能导致此问题的建议或我如何解决这个问题?

  for($i=0;$i<count($result);$i++)
      {
       $commanword = trim(strtolower($result[$i]['Words']));
       $newstring = preg_replace("/\b".$commanword."\b/i", '##', $newstring);
      }

3 个答案:

答案 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)

嘿朋友,我已经修好了。  它的问题是PCRE(Perl兼容的正则表达式)支持在我们的服务器上禁用现在它在服务器上工作时启用它感谢你们mc0e和Joran Den Houting