php图片下载方法

8-19 3,005 views

使用php的curl方法下载图片,只需要提供图片地址就可以了。
$url = "http://www.bac.com/1.gif";
getImage($url,'./');

function getImage($url,$path='',$filename='',$type=0){
    if($url==''){return false;}
    if($filename==''){
        $ext=pathinfo($url, PATHINFO_EXTENSION);
        if(!empty($ext)){
            $ext = '.'.$ext;
        }
        if ($path!=''){
            $path = $path . date('Y/').date('m/');
            if (!is_dir($path)){
                @mkdir($path,777,true);
            }
        }
        $filename=$path . date('YmdHis').'_curl_'.time().rand(100,999).$ext;
    }

    //文件保存路径 
    if($type){
        $ch=curl_init();
        $timeout=5;
        curl_setopt($ch,CURLOPT_URL,$url);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
        $img=curl_exec($ch);
        curl_close($ch);
    }else{
        ob_start(); 
        readfile($url);
        $img=ob_get_contents(); 
        ob_end_clean(); 
    }
    $size=strlen($img);
    //文件大小 
    $fp2=@fopen($filename,'a');
    fwrite($fp2,$img);
    fclose($fp2);
    return $filename;
}

解决 laravel-admin between datetime 假如数据库是时间戳int类型无法筛选。

laravel-admin默认的between->datetime(),查询默认是datetime类型,但是假如数据库是时间戳类型就会报错,又不想改底层文件的话可以试试加自定义筛选功能...

阅读全文

php解析英文语句,自动分解。

参考:https://www.php.net/manual/en/function.str-split.php 最近碰到一个问题,客户的英文地址太长,超出接口api字段长度,所以需要解析下语句分解发送。 ...

阅读全文

记录一个laravel-excel导出表格值为0导出excel显示空的解决方法。

最近在使用laravel-excel导出表格的时候,发现假如字段值为0的情况下,导出的excel中直接显示为空,找到一个方法解决,如下. 在laravel-excel的config配置中...

阅读全文

欢迎留言