【发布时间】:2012-07-12 14:26:30
【问题描述】:
我有一个博客条目,其中包含多张图片(有时一张,有时两张,有时三张),看起来有点像这样:
<a href="http://xxx/" rel="attachment w133>
<img class="yyy" title="title1" src="http://xxx/title1.jpg" alt="" width="650" height="487" />
</a>
<a href="http://xxx/" rel="attachment w134">
<img class="yyy" title="title2" src="http://xxx/title2.jpg" alt="" width="650" height="487" />
</a>
<a href="http://xxx/" rel="attachment w135">
<img class="yyy" title="title3" src="http://xxx/title3.jpg" alt="" width="650" height="487" />
</a>
后面有一些文字。
现在,我想知道如何使用 preg_match_all 来提取第一部分。我现在对 PHP 编程有所了解,但从未使用过 preg_match_all。
这里的代码确实只提取最后一张图片,这还不够:
$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post_content, $matches);
如果可能的话,如果有人能给我一个提示如何实现这一点,那就太好了。非常感谢!
【问题讨论】:
-
.将匹配任何字符,因此请尝试 [^] 以使其保留在图像标签内
-
使用HTML parser 而不是正则表达式可能会更好。然后您可以使用 XPath 查询获取图像。
-
@Waygood。谢谢。也许如果我会使用类似的东西: ('/') 它会提取这些东西?
标签: php regex image extract preg-match-all