PHP正则提取不包含指定网址的图片地址的例子

今天在做图片提取的时候,遇到了这个情况,一篇文章中的图片,提取出来一张作为文章的封面,这样在排版的时候图文模式看着比较舒服。

但是现在这个文章中可能含有一些表情,我们当然不能直接提取src路劲了,这样如果第一张是表情图片的话,就会提取表情图片来作为封面了,这时候我们就需要写清楚正则来排除不匹配的图片,下面是一个小列子:

  1. $contents = '<p>疲惫是一种享受,让我们无暇空虚;坎坷是一种经历,让我们真切的理解人生;
  2. 忙碌是一种幸福,让我们没有时间体会痛苦;奔波是一种快乐,
  3. <img src="http://img.baidu.com/hi/ldw/w_0009.gif" />
  4. <img src="http://img.baidu.com/hi/jx2/j_0020.gif" />
  5. <img src="http://img.baidu.com/hi/jx2/j_0042.gif" />
  6. <img src="http://img.baidu.com/hi/jx2/j_0015.gif" />
  7. <img src="https://www.phpfensi.com/uploads/image/20140420/13979336569926.jpg" />
  8. <img src="https://www.phpfensi.com/13979336569926.jpg" />';
  9. preg_match('#<img src="(?!http:\/\/img.baidu)([^"]+)"#', $contents,$matches);
  10. var_dump($matches);
  11. //运行结果
  12. /*
  13. array (size=2)
  14. 0 => string '<img src="https://www.phpfensi.com/uploads/image/20140420/13979336569926.jpg"' (length=77)
  15. 1 => string 'https://www.phpfensi.com/uploads/image/20140420/13979336569926.jpg' (length=66)
  16. */