百度图片防盗链处理函数

//百度图片地址处理
function img($url=''){

        if( $url ){

                $url = base64_decode($url);

                $dir = pathinfo($url);  

                $host = $dir['dirname'];  

                $refer = $host.'/';  

                $ch = curl_init($url);  

                curl_setopt ($ch, CURLOPT_REFERER, $refer);  

                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//Activation can modify the page  

                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  

                curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);  

                $data = curl_exec($ch);  

                curl_close($ch);  

                $ext = strtolower(substr(strrchr($url,'.'),1,10));  
                $types = array(  
                            'gif'=>'image/gif',  
                            'jpeg'=>'image/jpeg',  
                            'jpg'=>'image/jpeg',  
                            'jpe'=>'image/jpeg',  
                            'png'=>'image/png',  
                );  
                $type = $types[$ext] ? $types[$ext] : 'image/jpeg';  
                header("Content-type: ".$type);  
                echo $data;   

        }
}
//百度文章图片提取
function get_img( $str='' ){

    if( $str ){

        $preg_s = '/(src=\")(.*?)(\")/is';
        $preg_bd = '/(baidu)/is';

        if(preg_match_all($preg_s,$str,$arr) and preg_match_all($preg_bd,$str)){

            foreach($arr[2] as $y){
                if( preg_match_all( $preg_bd,$y ) ){
                    $url = base64_encode($y);
                    $url = str_replace('=','',$url);
                    $str = str_replace($y,site_url("index/img/$url"),$str);
                }

            }
        }
        return $str;
    } 
}
//调用
$r['body'] = $this->hp->get_img( $r['body'] );
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值