【发布时间】:2016-03-29 07:24:13
【问题描述】:
我正在制作用 PHP 替换特定 img 标签的功能。 但是……目前表现不佳。
代码如下
define('IMG_REG', '/<img.*?>/i');
$str = '<p>aaa</p><img src="aaa" >
<p>iii</p><img src="aaa" >
<p>uuu</p><img src="aaa" >
<p>eee</p><img src="aaa" >
<p>ooo</p><img src="aaa" >' ;
$num = 3;
if ( preg_match_all(IMG_REG, $str, $m, PREG_OFFSET_CAPTURE) > $num-1 ) {
$target = $m[0][$num-1][0];
$new = $target.'!!!';
if( $target != NULL ):
$str = preg_replace( $target, $new, $str, $num);
endif;
}
echo $str;
我想把前3个“img tag”改成“img tag”+“!!!”。
所以……理想的结果是这样的
<p>aaa</p><img src="aaa" >!!!
<p>iii</p><img src="aaa" >!!!
<p>uuu</p><img src="aaa" >!!!
<p>eee</p><img src="aaa" >
<p>ooo</p><img src="aaa" >
但是……实际结果是这样的
<p>aaa</p><<img src="aaa" >!!!>
<p>iii</p><<img src="aaa" >!!!>
<p>uuu</p><<img src="aaa" >!!!>
<p>eee</p><img src="aaa" >
<p>ooo</p><img src="aaa" >
有一些''。 我不知道为什么......
做我的主人!谢谢。
【问题讨论】:
-
你能试试这个吗:
define('IMG_REG', '/img.*?/i'); -
这将有助于regex101.com
-
对我来说非常好的信息 :) 谢谢大家!
标签: php html regex replace preg-replace