获取img标签,它的src值

时间:2011-07-25 11:31:23

标签: php regex

我有两个图像标签,一个接一个

<img class="c1 c2 c3" title="Image Title 1" src="http://example.com/image-1.jpg" alt="" width="620" height="521"><img class="c1 c2 c3" title="Image Title 2" src="http://example.com/image-2.jpg" alt="" width="620" height="521">

我想要一个可以获取两件事的正则表达式:

  • 首先'img'标签
  • 'src'来自第一个'img'标签的价值

我该怎么做?

P.S。做某人知道我可以在线测试正则表达式

4 个答案:

答案 0 :(得分:4)

正则表达式匹配第一个 IMG 标记及其 src 值:

$subject = '<img class="c1 c2 c3" title="Image Title 1" src="http://example.com/image-1.jpg" alt="" width="620" height="521"><img class="c1 c2 c3" title="Image Title 2" src="http://example.com/image-2.jpg" alt="" width="620" height="521">';
preg_match('/<img\s.*?\bsrc="(.*?)".*?>/si', $subject, $matches);
print_r($matches);

输出:

Array
(
    [0] => <img class="c1 c2 c3" title="Image Title 1" src="http://example.com/image-1.jpg" alt="" width="620" height="521">
    [1] => http://example.com/image-1.jpg
)

有很多工具可以在线测试正则表达式。以下是其中几个:

答案 1 :(得分:2)

您是否有任何特殊原因要使用正则表达式而不是DOM extension等更合适的工具?

获取第一个<img>的{​​{1}}属性的基本示例可能如下所示:

src

答案 2 :(得分:0)

使用:preg_match('/<img [>]*src="([^"]*)"/i',$subject,$matches);

答案 3 :(得分:0)

尝试/(<img[^>]*)/之类的内容来获取第一个img标记(或任何使用反向引用)。 然后使用/src="([^"])/之类的东西从标记字符串中获取src。

回答ps:http://www.spaweditor.com/scripts/regex/