PHP提取数据库内容中的图片地址并循环输出

复制代码 代码如下:

  /*

  1 (?s) 代表 Pattern.DOTALL,也就是匹配换行,允许 img里出现在多行

  2 .*?代表非贪婪匹配任意字符,直到后面的条件出现

  3 ?: 代表这个匹配但不被捕获,也就是不在结果出现 [\.gif|\.jpg] 是或者的意思

  */

  $pattern="/<img.*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/";

  $str='<p style="padding: 0px; margin-top: 0px; margin-bottom: 0px; line-height: 200%;"><img border="0" src="upfiles/2009/07/1246430143_4.jpg" alt=""/></p><p style="padding: 0px; margin-top: 0px; margin-bottom: 0px; line-height: 200%;"><img border="0" src="upfiles/2009/07/1246430143_3.jpg" alt=""/></p><p style="padding: 0px; margin-top: 0px; margin-bottom: 0px; line-height: 200%;"><img border="0" src="upfiles/2009/07/1246430143_1.jpg" alt=""/></p>';

  preg_match_all($pattern,$str,$match);

  print_r($match);

  /*

  Array

  (

  [0] => Array

  (

  [0] => <img border="0" src="upfiles/2009/07/1246430143_4.jpg" alt=""/>

  [1] => <img border="0" src="upfiles/2009/07/1246430143_3.jpg" alt=""/>

  [2] => <img border="0" src="upfiles/2009/07/1246430143_1.jpg" alt=""/>

  )

  [1] => Array

  (

  [0] => upfiles/2009/07/1246430143_4.jpg

  [1] => upfiles/2009/07/1246430143_3.jpg

  [2] => upfiles/2009/07/1246430143_1.jpg

  )

  )

  */