开发者

preg_replace: unknown modifier [duplicate]

开发者 https://www.devze.com 2022-12-24 02:10 出处:网络
This question already has answers here: Warning: preg_replace(): Unknown modifier 开发者_Go百科 (3 answers)
This question already has answers here: Warning: preg_replace(): Unknown modifier 开发者_Go百科 (3 answers) Closed 3 years ago.

Let's assume that $body is equal to

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

If I use

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

I obtain:

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

How have I to correct?


A preg pattern needs a pair of characters which delimit the pattern itself. Here your pattern is enclosed in the first pair of parentheses and everything else is outside.

Try this:

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

This is just about the syntax, and there is no guarantee on the pattern itself which looks suspicious.

Assuming the text in your example:

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


Try this:

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

精彩评论

暂无评论...
验证码 换一张
取 消