获取html指定标签的相关属性 正则匹配 万能标签匹配

/*
 *获取html指定标签的相关属性
 *@param string $content 要解析HTML内容
 *@param string $attr 指定要获取的标签属性
 *@param string $tag  指定解析标签
 *@return  array 
 */
function get_html_attr_by_tag($content="",$attr="src",$tag="img"){
    $arr=array();
    $cache_arr=array();
    $attr=explode(',',$attr);
    $tag=explode(',',$tag);
    foreach($tag as $i=>$t){
        foreach($attr as $a){
            preg_match_all("/<\s*".$t."\s+[^>]*?".$a."\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i",$content,$match);
           foreach($match[2] as $n=>$m){$arr[]=$m;}
       }
   }
   return $arr;//array
}

以上多个不区分,以下多个区分开了使用方法

$data=get_html_attr_by_tag($body,'src,title,href','img,a');

/*
 *获取html指定标签的相关属性
 *@param string $content 要解析HTML内容
 *@param string $attr 指定要获取的标签属性
 *@param string $tag  指定解析标签
 *@return  array 
 */
function get_html_attr_by_tag($content="",$attr="src",$tag="img"){
    $arr=array();
    $cache_arr=array();
    $attr=explode(',',$attr);
    $tag=explode(',',$tag);
    foreach($tag as $i=>$t){
        foreach($attr as $a){
            preg_match_all("/<\s*".$t."\s+[^>]*?".$a."\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i",$content,$match);
            foreach($match[2] as $n=>$m){$arr[$t][$a][]=$m;}
       }
   }
   return $arr;//array
}

 

转载于:https://my.oschina.net/xiaogg/blog/2221622

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值