这是我正在尝试做的事情:
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而且我已经碰壁了。希望更熟悉的人能够在我能够做到这一点之前解决这个问题...(如果我在那里发布成功故事会发布)同时请在我疯狂之前请帮助。
谢谢
答案 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="..."
包围。