php下载zip压缩后的https图片问题

拆分一:下载zip压缩后的照片

$url = 'https://fuss10.elemecdn.com/c/6c/69a7740b4ab864ac0639eb583d68fjpeg.jpeg';
$img = file_get_contents("compress.zlib://".$url);
$data = file_put_contents('E:/img/aaaaaaaaaaaa.jpeg',$img);

拆分二:下载https图片

确保已经在php.ini 打开openssl扩展和 fopen url

$arrContextOptions = array(
    "ssl"=>array(
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ),
);

// 读取图片
$img = file_get_contents($url, false, stream_context_create($arrContextOptions));
// 下载图片
file_put_contents('./files/aaaaaaaaaaaa.jpg',$img);

合并三:下载https的zip后的图片

$linkUrl = $_REQUEST['url'];
$urlpos = 0;        // 域名所在的位置
$domain = 'www.xxx.com';       // 当前域名
// 判断是否可以执行判断
$urlpos = strpos($linkUrl,$domain);
// 如果不可以下载
if(!$download)return;
// 截取文件后缀
$full_name = substr($linkUrl,$urlpos+strlen($domain));
// 获取文件名字
$filename = basename($full_name);
// 获取文件路径
$filedir = dirname($full_name);
// 获取文件绝对路径
$filedir = dirname(__FILE__).$filedir;
// 创建文件
loopMakeDir($filedir);
// 保存文件
downfile($linkUrl,dirname(__FILE__).$full_name);

// 深层创建文件结构
function loopMakeDir($dir, $mode = 0777)
{
    if (is_dir($dir)) {
        return true;
    } else if (!is_dir(dirname($dir)) && !call_user_func(__FUNCTION__, dirname($dir), $mode)) {
        return false;
    }
    return mkdir($dir, $mode);
}
// return;
function downfile($url,$filename){
    // 下载https文件的配置options
    $arrContextOptions = array(
        "ssl"=>array(
            "verify_peer"=>false,
            "verify_peer_name"=>false,
        ),
    );
    try {
        // 加载文件
        $img = @file_get_contents("compress.zlib://".$url, false, stream_context_create($arrContextOptions));
        if($img !== false){
            // 将文件下载到本地
            $data = @file_put_contents($filename,$img);
        }
    }
    catch (Exception $e) {
        echo $e->getMessage();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏天的一朵云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值