• PHP 下载网络图片


    /*
     * 功能:php完美实现下载远程图片保存到本地
     * 参数:文件url,保存文件目录,保存文件名称,使用的下载方式
     * 当保存文件名称为空时则使用远程文件原来的名称
     */
    function getImage($url, $save_dir, $filename = '', $type = 0)
    {
    //     echo $url."
    ";
    //     echo $save_dir."
    ";
    //     echo $filename."
    ";
    //     return false;
        if (trim($url) == '') {
            return array(
                'file_name' => '',
                'save_path' => '',
                'error' => 1
            );
        }
        // if(trim($save_dir)==''){
        // $save_dir='./';
        // }
        if (trim($filename) == '') { // 保存文件名
            $ext = strrchr($url, '.');
            if ($ext != '.gif' && $ext != '.jpg') {
                return array(
                    'file_name' => '',
                    'save_path' => '',
                    'error' => 3
                );
            }
            // $filename=time().$ext;
            // $filename = strrchr($url, '/');
            $pos = strrpos($url, "/");
            if ($pos > 0) {
                $filename = substr($url, $pos + 1);
                echo $filename . "
    ";
            }
        }
        if (0 !== strrpos($save_dir, '/')) {
            $save_dir .= '/';
        }
        // 创建保存目录
        if (! file_exists($save_dir) && ! mkdir($save_dir, 0777, true)) {
            return array(
                'file_name' => '',
                'save_path' => '',
                'error' => 5
            );
        }
        // 获取远程文件所采用的方法
        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($save_dir . $filename, 'a');
        fwrite($fp2, $img);
        fclose($fp2);
        unset($img, $url);
        return array(
            'file_name' => $filename,
            'save_path' => $save_dir . $filename,
            'error' => 0
        );
    }
  • 相关阅读:
    zabbix 监控机器监听的端口 + 触发器 表达式理解
    php关于文件上传的两个配置项说明
    linux cron计划任务防止多个任务同时运行
    php注册自动加载函数
    linux 下查看机器是cpu是几核的
    laravel容器类make方法解释
    laravel php门面模式
    js获取当前页面的url地址
    php编码规范
    laravel console handle 传参方法
  • 原文地址:https://www.cnblogs.com/sdlypyzq/p/4274458.html
Copyright © 2020-2023  润新知