php preg_match_all()函数怎么匹配文章中的所有图片链接并打印出来??

匹配正则已经知道了,但是获取不了所有匹配的记录

<?php
$Html = @file_get_contents('5.html');
$Html = preg_replace('/\s{2,}|\n/i', '', $Html); //过滤掉换行和2个以上的空格
preg_match_all('/<img\s+[^>]*src\s?=\s?[\'|"]([^\'|"]*)[\'|"]/i', $Html, $Image);
print_r($Image);

图片,通常情况下,无论有什么属性,他最基本的有2点,<img开头, 有src属性!

那么只要匹配到这2个特征,其他的就别管他,这样,所有图片就出来了

追问

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-26
preg_match_all('/<img src="([0-9a-zA-Z\:\.\/]+).jpg" width="400" height="261"><\/a>/i', $data,$picture);//data是页面的文本,picture存放匹配出来的数组
$photo=array();
foreach ($picture[1] as $key => $value) ://给图片文件加上后缀
$photo[]= $value.".jpg";
endforeach;

当然这只是一个很一般的例子,我也只会用一点,要根据不同页面的标签,来自己写好匹配规则。 

追问

遍历$picture[1]只有一个结果啊,文章里面本来有两张图片的

追答

所以你就要 仔细看看 这两个图片的一些共性,比如说class width height,等等。

追问

两张图除了名字不一样,其他都一样,现在的主要问题是怎么全部给遍历出来?

追答

只要你的正则写的 没问题,这个方法是能全部遍历出来的,

本回答被提问者和网友采纳