preg_replace:未知修饰符

时间:2010-03-26 17:39:50

标签: php preg-replace

假设$ body等于

something 
that 
does 
not 
interest 
me 
<!-- start -->
some
html
code
<!-- end -->
something
that
does
not
interest
me

如果我使用

$body=preg_replace("(.*)<!-- start -->(.*)<!-- end -->(.*)","$2",$body);

我获得:

Warning: preg_replace() [function.preg-replace]: Unknown modifier '<' 

我如何纠正?

2 个答案:

答案 0 :(得分:16)

preg模式需要一对字符来分隔模式本身。在这里,你的模式被括在第一对括号中,其他一切都在外面。

试试这个:

$body=preg_replace("/(.*)<!-- start -->(.*)<!-- end -->(.*)/","$2",$body);

这只是语法,不能保证模式本身看起来很可疑。

编辑:

假设示例中的文字:

preg_match('#<!-- start -->(.*?)<!-- end -->#s', $text, $match);
$inner_text = trim($match[1]);

答案 1 :(得分:2)

试试这个:

$body = preg_replace("/(.*)<!-- start -->(.*)<!-- end -->(.*)/","$2",$body);