$str= '垃圾的弗拉斯柯达卡<img src="bbs.chinahrd.net" alt="kkkkkkk ddd" title="kdkkdkdkdkkdkd" />上的肌肤拉萨的肌<img src="" />肤了撒旦<img src="bbs.chinahrd.net" />法及阿斯兰<img src="bbs.chinahrd.net" />';
/*
* 取html中的所有img出来
*/
function html2imgs ($html) {
$imgs = array();
if (empty($html)) return $imgs;
preg_match_all("/<img[^>]+>/i",$html,$img);
if (empty($img)) return $imgs;
$img = $img[0];
foreach ($img as $g) {
$g = preg_replace("/^<img|>$/i", '',$g);//移除二头字符
preg_match("/\ssrc\s*\=\s*\"([^\"]+)|\ssrc\s*\=\s*'([^']+)|\ssrc\s*\=\s*([^\"'\s]+)/i", $g, $src);//空格 src 可能空格 = 可能空格 "非"" 或 '非'' 或 非空白 这几种可能,下同
$src= empty($src) ? '': $src[count($src) - 1];//匹配到,总会放在最后
if (empty($src) ) {//空的src? 没用,跳过
continue ;
}
preg_match("/\salt\s*\=\s*\"([^\"]+)|\salt\s*\=\s*'([^']+)|\salt\s*\=\s*(\S+)/i", $g, $alt);
$alt = empty($alt) ? $src : $alt[count($alt) - 1];//alt没值?用src
preg_match("/\stitle\s*\=\s*\"([^\"]+)|\stitle\s*\=\s*'([^']+)|\stitle\s*\=\s*(\S+)/i", $g, $title);
$title= empty($title) ? $src : $title[count($title) - 1];//title没值?用src
$imgs[] = array('title' => $title, 'alt' => $alt, 'src' => $src);
}
return $imgs;
}
var_dump(html2imgs($str));
php代码从html代码中提取出所有的图片返回数组
原创
©著作权归作者所有:来自51CTO博客作者qidizi的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
从HTML代码中提取文字,去掉HTML的标记
从HTML代码中提取文字,去掉HTML的标记
职场 休闲 从HTML代码中提取文字 去掉HTML的标记 -
如何从 dump 文件中提取出 C# 源代码?
法源码提取出来。二: 从 dump 文
Assembly Domain System -
asp去所有的html代码
asp去所有的html代码
职场 休闲 asp去所有的html代码