php代码从html代码中提取出所有的图片返回数组

1 篇文章 0 订阅
1 篇文章 0 订阅



$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));


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值