如何利用preg replace或preg_match_all替换成加工后的字符串
我要匹配出一html字符串中,所有的<img……/>标签,并在每一个匹配到的字符串中的相应位置中添加style="float:right;",然后再放回原html字符串中...
我要匹配出一html字符串中,所有的<img …… />标签,并在每一个匹配到的字符串中的相应位置中添加style="float:right;",然后再放回原html字符串中。(使网页中的图片集体右对齐)
我想到利用preg_replace,但我只能用其匹配出<img …… />标签,而无法在匹配项中加上我想加入的字符串。
如果利用preg_match_all的话,能得到匹配的数组,然后再加入要插入的字符串,但在放回原html字符串时又很麻烦。
希望大家能帮我想想办法,非常感谢!(我使用的是PHP语言)
由于每个img标签可能要个性化修改,不能直接用str_replace来实现,如:
str_replace("src=","style='float:right' src=",HTMLStr)
这样不行,因为非img的src也会被修改。 展开
我想到利用preg_replace,但我只能用其匹配出<img …… />标签,而无法在匹配项中加上我想加入的字符串。
如果利用preg_match_all的话,能得到匹配的数组,然后再加入要插入的字符串,但在放回原html字符串时又很麻烦。
希望大家能帮我想想办法,非常感谢!(我使用的是PHP语言)
由于每个img标签可能要个性化修改,不能直接用str_replace来实现,如:
str_replace("src=","style='float:right' src=",HTMLStr)
这样不行,因为非img的src也会被修改。 展开
展开全部
正则这样写"/(<img[^<>]+)(src=[\"'].*?[\"'])([^<>]*\/?>)/is"
再用preg_replace($preg,"\\1 style=\"float:right;\" \\2\\3",$str);
下面是一个我自己写的一个将所有<img>标签加上style="float:right;"的例子
a.txt如下:
<div class="clearfix goodsBox">
<a href="goods.php?id=24">
<img src="images/111.jpg" alt="诺基亚5530"/></a><br />
<a href="goods.php?id=25">
<img src="images/222.jpg" alt="摩托罗拉M80"/></a><br />
<a href="goods.php?id=26">
<img src="images/333.jpg" alt="三星A50"/></a><br />
<a href="goods.php?id=27">
<img src="images/444.jpg" alt="诺基亚N97"/></a><br />
<a href="goods.php?id=28">
<img src="images/555.jpg" alt="LG5280"/></a><br />
<a href="goods.php?id=29">
<img src="images/666.jpg" alt="lenovoA38"/></a><br />
</div>
php文件如下:
<?php
$str=file_get_contents("a.txt");
$preg="/(<img[^<>]+)(src=[\"'].*?[\"'])([^<>]*\/?>)/i";
$newStr=preg_replace($preg,"\\1 style=\"float:right;\" \\2\\3",$str);
var_dump($newStr);
echo $newStr;
// echo $str;
?>
再用preg_replace($preg,"\\1 style=\"float:right;\" \\2\\3",$str);
下面是一个我自己写的一个将所有<img>标签加上style="float:right;"的例子
a.txt如下:
<div class="clearfix goodsBox">
<a href="goods.php?id=24">
<img src="images/111.jpg" alt="诺基亚5530"/></a><br />
<a href="goods.php?id=25">
<img src="images/222.jpg" alt="摩托罗拉M80"/></a><br />
<a href="goods.php?id=26">
<img src="images/333.jpg" alt="三星A50"/></a><br />
<a href="goods.php?id=27">
<img src="images/444.jpg" alt="诺基亚N97"/></a><br />
<a href="goods.php?id=28">
<img src="images/555.jpg" alt="LG5280"/></a><br />
<a href="goods.php?id=29">
<img src="images/666.jpg" alt="lenovoA38"/></a><br />
</div>
php文件如下:
<?php
$str=file_get_contents("a.txt");
$preg="/(<img[^<>]+)(src=[\"'].*?[\"'])([^<>]*\/?>)/i";
$newStr=preg_replace($preg,"\\1 style=\"float:right;\" \\2\\3",$str);
var_dump($newStr);
echo $newStr;
// echo $str;
?>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询