当前位置: 首页 > article >正文

PHP 将图片url,写入到文件夹中,导出到zip下载到桌面

一:将图片写入到文件内
文件url:比如 【https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=false&word=%E5%9B%BE%E7%89%87%E5%A4%B4%E5%83%8F&hs=0&pn=1&spn=0&di=7466852183703552001&pi=0&rn=1&tn=baiduimagedetail&is=3775720047%2C2353259150&ie=utf-8&oe=utf-8&cl=2&lm=-1&cs=2052511577%2C1164310870&os=3775720047%2C2353259150&simid=3311344121%2C375144931&adpicid=0&lpn=0&ln=30&fr=ala&fm=&sme=&cg=head&bdtype=0&oriquery=%E5%9B%BE%E7%89%87%E5%A4%B4%E5%83%8F&objurl=https%3A%2F%2Fiknow-pic.cdn.bcebos.com%2Fbd3eb13533fa828b6d387b7def1f4134970a5a11&fromurl=ippr_z2C%24qAzdH3FAzdH3F4k1_z%26e3Bkwt17_z%26e3Bv54AzdH3Fgjofrw2jAzdH3F1wpwAzdH3F1pswg1tg2f7rj6%3Fgt1%3D1p_9bl8ccccln88cbamnmd&gsm=&islist=&querylist=&dyTabStr=MCwxMiwzLDEsMiwxMyw3LDYsNSw5】,
所有格式的图片都支持

 $savePath = __DIR__ . "/../../runtime/logs/images"; // 确保此目录存在并且可写
  foreach ($imageUrls as $imageUrl) {
       $fileName = basename($imageUrl);
       $saveFile = $savePath . '_' . $num;

       $imageData = @file_get_contents($imageUrl);
       if ($imageData !== false) {
           file_put_contents($saveFile, $imageData);
           echo "下载图片成功: $fileName" . PHP_EOL;
       } else {
           echo "下载图片成功失败: $imageUrl" . PHP_EOL;
       }
       $num++;
   }

二:将刚才文件夹内的图片写入到zip文件内,

   $zipFile = __DIR__ . '/../../runtime/logs/images/images.zip';
   $zip = new \ZipArchive();
    if ($zip->open($zipFile, \ZipArchive::CREATE | \ZipArchive::OVERWRITE) !== TRUE) {
        echo "无法创建ZIP文件" . PHP_EOL;
        exit;
    }
    $saveFiles = glob($savePath . '*', GLOB_BRACE);// 获取下面所有文件
    if (empty($saveFiles)) {
        echo "没有可下载的图片" . PHP_EOL;
        exit;
    }

    foreach ($saveFiles as $file) {
        if (is_file($file)) { // 确保只处理文件
            $filename = basename($file);
            if ($zip->addFile($file, $filename) === false) {
                echo "无法添加文件 {$filename} 到 ZIP 文件" . PHP_EOL;
            }
        }
    }
    $zip->close();

http://www.kler.cn/a/573219.html

相关文章:

  • SpringBoot Actuator
  • 4. Prometheus监控数据持久化
  • Spring Boot中对接Twilio以实现发送验证码和验证短信码
  • Redis 篇
  • flask 安装后不能识别
  • C# 类型转换
  • 2025中企出海解决方案:工博科技联合SAP构建AI赋能的全球化管理平台
  • vscode远程ssh链接服务器
  • 迷你世界脚本背包接口:Backpack
  • [内网安全] Windows 网络认证 — 基于挑战响应认证的 NTLM 协议
  • Python Pandas实现GROUP BY WITH CUBE和WITH ROLLUP的分类汇总功能
  • 【极客时间】浏览器工作原理与实践-2 宏观视角下的浏览器 (6讲) - 2.5 渲染流程(上):HTML、CSS和JavaScript,是如何变成页面的?
  • 辉视融合服务器方案:为小酒店行业铺垫未来智能化布局
  • 极限入门题解析
  • oracle服务器通过进程查找对应的sql语句
  • 软件工程----软件可靠性建模与管理
  • 代码随想录算法训练营 | 图论 | 孤岛总面积、沉没孤岛
  • ⭐算法OJ⭐跳跃游戏【动态规划 + 单调队列】(C++实现)Jump Game 系列 VI
  • 全栈(Java+vue)实习面试题(含答案)
  • 记Android12上一个原生bug引起的system_server crash