请教如何使用preg_replace替换多行的a标签。
$body的内容为<ahref="http://www.baidu.com/1.html">这里是1</a><ahref="http://www.baidu.com/2....
$body 的内容为
<a href="http://www.baidu.com/1.html">这里是1
</a>
<a href="http://www.baidu.com/2.html">这里是2
</a>
<a href="http://www.baidu.com/3.html">这里是3
</a>
$body = preg_replace("/(<a[^>]*>(.+?)<\/a>)/is", "<a href='http://www.baidu.com/'>$1</a>", $body);
替换失败。
求帮助,这种多行的,而且多个的a标签怎么让他每个都这样替换了。 展开
<a href="http://www.baidu.com/1.html">这里是1
</a>
<a href="http://www.baidu.com/2.html">这里是2
</a>
<a href="http://www.baidu.com/3.html">这里是3
</a>
$body = preg_replace("/(<a[^>]*>(.+?)<\/a>)/is", "<a href='http://www.baidu.com/'>$1</a>", $body);
替换失败。
求帮助,这种多行的,而且多个的a标签怎么让他每个都这样替换了。 展开
展开全部
preg_match_all('/\<a\s+href\=\"[A-Za-z]+:\/\/\S*\"\>\w+[\s\S]*\<\/a\>/is', $body, $matches);
这样似乎可以
如果链接中间的文字是中文,这种也是不行的,要用u模式修正
如下:
<?php
header("content-type: text/html; charset=utf-8");
$body = '<a href="
这里是1
</a>
<a href="
</a>
<a href="
这里是c
</a>';
preg_match_all('/\<a\s+href\=\"[A-Za-z]+:\/\/\S*\"\>[\w^\x4e00-\x9fa5]+[\s\S]*\<\/a\>/isu', $body, $matches);
var_dump($matches);
?>
至于替换,匹配出来就可以随便替换了,加几个子模式就行了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询