1

可能重复:
如何使用 PHP 解析和处理 HTML?

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

1.) 查找我的 wordpress 博客文章中的所有图片

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

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 replace(错误地)并且不确定这是否朝着正确的方向发展。这是我第一次接触 PHP,但我碰壁了。希望更熟悉的人能够在我之前解决这个问题……(如果我做到了,我会发布成功的故事)与此同时,在我把自己逼疯之前请帮忙。

谢谢

4

2 回答 2

4

代替:

echo $aPics[0][$i];

和:

echo str_replace('src=', 'href=', $aPics[0][$i]);
于 2012-01-22T03:24:55.733 回答
1

src=...您正在用这一行注入整个比赛:

      echo $aPics[0][$i];

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

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

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

于 2012-01-22T03:27:15.237 回答