需要从所有PHP数组值中删除“src =”

时间:2012-01-22 03:22:05

标签: php arrays preg-replace prettyphoto

  

可能重复:
  How to parse and process HTML with PHP?

这是我正在尝试做的事情:

1.)查找我的wordpress博客帖子中的所有图片

2.)在帖子顶部创建指向其图片网址的链接

3.)为每个链接提供属性:

rel="prettyPhoto[ INSERT POST TITLE HERE ]"

以下是我到目前为止:

$szPostContent = $post->post_content;
$szSearchPattern = '@src="([^"]+)"@';

// Run preg_match_all to grab all the images and save the results in $aPics
preg_match_all( $szSearchPattern, $szPostContent, $aPics );


// Check to see if we have at least 1 image src
$iNumberOfPics = count($aPics[0]);


if ( $iNumberOfPics > 0 ) {

///this is what I want to do
/// $aPicsTRIMMED = preg_replace('/src=/','/http=/',$aPics);

 for ( $i=0; $i < $iNumberOfPics ; $i++ ) {
echo ' <a rel="prettyPhoto['.$portTit.']"';
      echo $aPics[0][$i];
echo '>Image</a>';

     };
};

现在,按照这个代码,我会得到以下信息:

<a rel="prettyPhoto[Correct Post Title]" src="http://mydomain.com/myimage.jpg">Image</a>

非常接近,但我需要href而不是src。如果你看到底部注释掉了我一直试图使用preg替换(错误)并且不确定这是否正在朝着正确的方向移动。这是我第一次使用PHP而且我已经碰壁了。希望更熟悉的人能够在我能够做到这一点之前解决这个问题...(如果我在那里发布成功故事会发布)同时请在我疯狂之前请帮助。

谢谢

2 个答案:

答案 0 :(得分:4)

替换:

echo $aPics[0][$i];

使用:

echo str_replace('src=', 'href=', $aPics[0][$i]);

答案 1 :(得分:1)

您正在使用此行注入整个匹配src=...

      echo $aPics[0][$i];

但是你只应该使用正则表达式中的内部匹配组([^"]+)。那个在匹配结果数组的[1]中可用:

      echo ' href="' . $aPics[1][$i] . '"';

它只需要被新属性片段href="..."包围。