eregi_replace()到preg_replace()的帮助

时间:2011-07-14 22:32:37

标签: php regex preg-replace ereg-replace

  

可能重复:
  Converting ereg expressions to preg

我尝试了很多不同的方法,我甚至从addsbytes.com下载了正则表达式参考表,但我无法弄清楚如何将这个eregi_replace()语句移动到preg_replace()言。

我已经阅读并理解了preg_replace()的分隔符要求,但我认为问题是修饰符。如何知道该函数使用哪个修饰符?我试过\ A,\ b和\ e,但似乎都没有用。我觉得有些事我只是缺席了。

$bodytag = '%%BODY%%';
$header = eregi_replace($bodytag . '.*', '', $temp);
$footer = eregi_replace('.*' . $bodytag, '', $temp);

我尝试了以下内容:

$header = preg_replace('/%%BODY%%.*/i', '', $temp);
$footer = preg_replace('/.*%%BODY%%/i', '', $temp);

但它似乎不起作用。我错过了什么?

修改

最近,我尝试了这个,没有修复。

$bodytag = "%%BODY%%";
$header = preg_replace("/".$bodytag."(.*)/i", '', $temp);
$footer = preg_replace("/(.*)".$bodytag."/i", '', $temp);

2 个答案:

答案 0 :(得分:1)

解决:

原来这是解决方案:

$header = preg_replace("/".$bodytag."(.*)/is", '', $temp);
$footer = preg_replace("/(.*)".$bodytag."/is", '', $temp);

从其他网站的论坛获得帮助和答案。我错过了“s”修饰符,我也不知道修饰符可以堆叠。

答案 1 :(得分:0)

$ header = preg_replace('/ BODY(。*)/ i','',$ temp); $ footer = preg_replace('/(。*)BODY / i','',$ temp);