preg_replace 替换图片 多一个括号

$str="图片一:<img alt="" border="0" src="http://img2.cache.netease.com/cnews/2008/12/9/2008120910034482010.jpg" />日本方面拍摄下来的进入钓鱼岛水域的“海监46”号和“海监51”号图片二:<img alt="" border="0" src="http://img1.cache.netease.com/cnews/2008/12/9/20081209083722012df.jpg" /> 钓鱼岛位于中国东海大陆架的东部边缘,与日本冲绳群岛之间隔有一条2000多米深的海沟,在地质结构上是附属于中国台湾的大陆性岛屿。<img src="http://www.google.cn/images/nav_logo3.png" />最后的图片";
preg_match_all("/<img.*src="[^"]+"[^>]+>/isU",$str,$arr); 
$arrnew="<img src="xxx.jpg">,<img src="xxx2.jpg">,<img src="xxx3.jpg">";
$array=split(",",$arrnew);
$a=preg_replace($arr[0],$array,$str);

替换后的img标签多了一个<内容> 整了半天没明白,搜索了一个PHPX的网页在被替换的内容前面加~内容~ 可以去掉这个<>
但是我单独写一个替换的用~就可以去掉 但是这里的数组是从preg_match_all得到的。没弄明白加在哪里,试了几个地方都出错!
===========

for($i=0;$i<count($arr[0]);$i++)
{
  $arr[0][$i]="~".$arr[0][$i]."~";
}

加了几行代码解决了,但是不知道为啥要这样,好像很少人遇到这个问题。

发表评论

电子邮件地址不会被公开。 必填项已用*标注