PHP提取字符串中的图片地址2种方法

文章有两个正则匹配图片的例子,头一个是获取文章中所有图片地址出来,第二个例子就是只要以http,https打开的图片地址,第二个例子多半用来采集远程图片,第一个例子多半用来获取字符串中图片地址或提取第一张图片.

例子1 获取字符串中所有图片:

  1. <?php
  2. $str='<p><img src="upfiles/2009/07/1246430143_1.jpg" alt=""/></p>';
  3. $pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/";
  4. preg_match_all($pattern,$str,$match);
  5. print_r($match);
  6. ?>

结果显示:

  1. Array
  2. (
  3. [0] => Array
  4. (
  5. [0] => <img border=”0″ src=”upfiles/2009/07/1246430143_1.jpg” alt=””/>
  6. )
  7. [1] => Array
  8. (
  9. [0] => upfiles/2009/0(www.phpfensi.com)7/1246430143_1.jpg
  10. )
  11. )

例子2,这个函数是提取站外以http,https

  1. /**
  2. * 提取字符串中图片url地址
  3. * @param type $str
  4. * @return type
  5. */
  6. function getimgs($str) {
  7. $reg = '/((http|https):\/\/)+(\w+\.)+(\w+)[\w\/\.\-]*(jpg|gif|png)/';
  8. $matches = array();
  9. preg_match_all($reg, $str, $matches);
  10. foreach ($matches[0] as $value) {
  11. $data[] = get_file($value);
  12. }
  13. return $data;
  14. }