php简单正则匹配Img标签src内容采集?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php简单正则匹配Img标签src内容采集?相关的知识,希望对你有一定的参考价值。

采集http://sports.qq.com/nba/?ptag=baidu.ald.sc.nba网站中所有img标签
preg_match_all('/<img src="(.*)".*>/U', $file,$arr);我用的这个只能匹配到<img src=''>这样的图片<img alt='' src=''>这样的不能匹配到,还有一些文本内容如何匹配采集,感谢大神!!

// 抓取网页
echo "\\n\\n抓取网页=======================================\\n";
function getHTTPS($url) 
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, FALSE );
curl_setopt ( $ch, CURLOPT_HEADER, false );
curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt ( $ch, CURLOPT_REFERER, $url );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, TRUE );
$result = curl_exec ( $ch );
curl_close ( $ch );
return $result;

$result = getHTTPS ( "" );

$array = array (
\'img\',
\'script\',
\'link\' 
);

$num = count ( $array );
for($i = 0; $i < $num; ++ $i) 
echo $array [$i] . "--------------------------------\\n";
if (preg_match_all ( "/<" . $array [$i] . "[^>]*>/i", $result, $m )) 
for($j = 0; $j < count ( $m [0] ); $j ++) 
echo $m [0] [$j] . "\\n";


参考技术A /<img[^>]*src=[\'"]([^\'"]*)[\'"][^>]*>/is追问

你这个[^>]*是什么意思还有[\'"]是什么意思,还有但是这中格式的图片还没有采集到

追答

/<img\\s?(?:\\w="[^"]*")?src=[\\'"]([^\\'"]*)[\\'"][^>]*/is

参考技术B /<img(.*)? src=["|'](.*)["|'](.*)?>/Uis

PHP正则匹配img标签的正则 并获得alt属性的值

PHP正则匹配img标签的正则 并获得alt属性的值,这个img标签里可能含有其它各种各样的属性,新手,不会写啊,求助,感谢!!!在线等。

参考技术A preg_match_all("/<img.*alt\=[\"|\'](.*)[\"|\'].*>/i","<img src=\"地址\" alt=\"alt\">",$match);
print_r($match);

以上是关于php简单正则匹配Img标签src内容采集?的主要内容,如果未能解决你的问题,请参考以下文章

HTML中img标签的src填本地绝对路径无法显示

正则表达式和 PHP - 从 img 标签中隔离 src 属性

java正则表达式匹配img标签并替换

高级正则技巧PHP正则表达式过滤html标签属性(DEMO)

正则表达式匹配img标签中的src获取地址

php正则表达式提取img alt/title标签并替换