php批量保存网页上的图片,php网络图片下载至本地(可批量下载)

2023-11-15

class dlImageByWeb{

/**

*下载图片

*/

public function dl($url,$dir='',$orgName=0){

$state = @file_get_contents($url,0,null,0,1);//获取网络资源的字符内容

$dlDir = $dir; //保存到本地路径地址

$orgName = $orgName?1:0; //是否使用原文件名

//获取原文件类型

if($state){

ob_start();//打开输出

readfile($url);//输出图片文件

$img = ob_get_contents();//得到浏览器输出

ob_end_clean();//清除输出并关闭

if($orgName){

$orgFileName = $key =basename($url);

$filename = './webDl/'.$orgFileName;

}else{

$fileType='jpg';

//type:1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM

if((list($width, $height, $type, $attr) = getimagesize($url)) !== false) {

switch ($type) {

case 1:

$fileType='gif';

break;

case 2:

$fileType='jpg';

break;

case 3:

$fileType='png';

break;

case 4:

$fileType='swf';

break;

case 5:

$fileType='psd';

break;

case 6:

$fileType='bmp';

break;

default:

$fileType='jpg';

break;

}

$key=.time().rand(1000,9999).'.'.$fileType;

$filename = './webDl/'.$key;//文件名称与路径

}else{

return 0;

}

}

$fp2 = @fopen($filename, "a");

fwrite($fp2, $img);//向当前目录写入图片文件,并重新命名

fclose($fp2);

return ['key'=>$key,'path'=>$filename];

}else{

return 0;

}

}

/**

*批量下载图片

*/

public function batchDl($urlArr=[]){

if($urlArr&&is_array($urlArr)){

foreach ($urlArr as $key => $value) {

$r=$this->dl($value,'',1);

}

}

return 0;

}

}

$n=new dlImageByWeb();

$urlArr=[

'./1094945555.jpg',

'./578891674.jpg',

'./1048935941.jpg',

'./129132983.jpg',

'./413464489.jpg',

'./450980248.jpg',

'./530963476.jpg',

'./626627045.jpg',

'./243084559.jpg',

'./195507533.jpg'

];

$n->batchDl($urlArr);

?>

网络下载类打包文件下载:

链接:https://pan.baidu.com/s/1ymppjheob7N7BXqUMCMIYA

提取码:sgz4

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php批量保存网页上的图片,php网络图片下载至本地(可批量下载) 的相关文章

  • 【DRAM存储器五】DRAM存储器的架构演进-part2

    个人主页 highman110 作者简介 一名硬件工程师 持续学习 不断记录 保持思考 输出干货内容 参考书籍 Memory Systems Cache DRAM Disk 目录
  • TCP的粘包问题

    TCP transport control protocol 传输控制协议 是面向连接的 面向流的 提供高可靠性服务 收发两端 客户端和服务器端 都要有一一成对的socket 因此 发送端为了将多个发往接收端的包 更有效的发到对方 使用了优
  • python pyinstaller打包参数介绍(转)

    pyinstaller相关参数 F onefile 打包一个单个文件 如果你的代码都写在一个 py文件的话 可以用这个 如果是多个 py文件就别用 D onedir 打包多个文件 在dist中生成很多依赖文件 适合以框架形式编写工具代码 我
  • 如何使用yum安装最新软件包

    分享请标明来自 https www css3 io how yum install release soft html 背景 使用yum安装软件时 会经常遇到安装的软件是老版本的 被非自己期望的release版本 这到底是怎么回事儿 得从r
  • 【2023】java通过modbus4j实现modus TCP通讯

    Modbus通信协议 主要分为三个子协议 RTU ASCII TCP Modbus RTU 传输的是字节数组 bit 通信 读写 输出 可以读写 输入 只能读 存储区 输出线圈 输入线圈 输出寄存器 输入寄存器 线圈 代表一个布尔量 最小单
  • Docker环境安装

    Docker环境安装 Docker简介 Docker工作原理 Docker的应用场景 Docker 的优点 CentOS Docker 安装与配置 Docker 安装 Docker 配置 Docker容器概念 Docker容器操作 拉取镜像
  • Java 实现文件复制及文件夹复制

    在Java中 有多种方法可以实现文件的复制 以下是几种常用的方式 使用字节流进行复制 通过FileInputStream和FileOutputStream分别创建源文件和目标文件的输入输出流 然后通过循环读取源文件内容 并将数据写入目标文件
  • mysql相加并输出_用shell把执行的两条sql语句相加并输出数据库名和相加的值以tab健隔开...

    SELECT SUM PresentSum FROM Lg ConsumeDetail0 WHERE ConsumeDate lt 2016 11 01 AND OpId 300 SELECT SUM PresentSum FROM Lg
  • vcpu和physical cpu 绑定

    参考libvirt中xml的写法可以将vpu和物理cpu 绑定 https libvirt org formatdomain html elementsCPUTuning
  • Unity鼠标光标使用学习

    Unity下的鼠标光标程序相关的就一个类下的2 3个方法 首先 光标导入图片的设置需要将类型设置为Cursor 设置鼠标光标的方法就一个 SetCursor 第一个参数是图片 第二个参数是点击点的偏移量 第三个参数是类型 public Te
  • Apollo配置中心Client源码学习(二)-- 配置同步

    上一篇文章 https blog csdn net crystonesc article details 106630412 我们从Apollo社区给出的DEMO开始逐步分析了Apollo客户端配置的创建过程 作为Apollo配置中心Cli
  • Javascript和CSS的标签属性对应表

    在写javascript中 经常要用到style对象的css属性 很多不记得 其实很好记 基本就是CSS中的 转化为javascript的驼峰写法 除了注意下float 盒子标签和属性对照 CSS语法 不区分大小写 JavaScript语法
  • 针对博客项目进行web自动化测试

    web自动化测试针对博客项目 项目功能 测试计划 功能测试 编写测试用例 使用Selenium Junit5进行Web自动化测试 创建测试套件类 博客登录页 博客列表页 主页 博客详情页 个人博客列表页 修改密码页 编辑博客页 退出驱动 屏
  • 台达plc控制伺服电机编程实例_PPT图文讲解PLC控制系统的设计及编程实例

    今天主要是关于PLC控制系统设计 分成四个方面 以图文的形式来为大伙做讲解 一 PLC控制系统设计概述 二 PLC控制系统设计 三 PLC的安装 运行与维护 四 PLC的编程实例 一 PLC控制系统设计概述 1 系统设计的原则 2 系统设计
  • chooseAddress:fail the api need to be declared in …报错解决方法

    在app js中与pages同级添加 requiredPrivateInfos getFuzzyLocation choosePoi chooseAddress 如果提示无效的json文件 在顶部工具栏 微信开发者工具 检查更新 更新到最新
  • 一致性算法(paxos、raft)

    背景 分布式 一致性模型 1 弱一致性 最终一致性 1 1 DNS 1 1 Gossip 2 强一致性 2 1 同步 2 1 paxos 2 1 raft multi paxos 2 1 ZAB multi paxos 与raft相似 心跳
  • error C2144: 语法错误:“int”的前面应有“;”

    error C2144 语法错误 int 的前面应有 C error C2144 syntax error int should be preceded by 注 我使用VS2010时 遇到的问题 解决办法 在某个 h文件里你自定义的某个类
  • 软件工程的发展历程及展望

    软件工程发展至今 催生出了许多优秀的编程语言和编程思想 本文将带领大家一起了解软件工程经历的四个阶段 汇编语言表达业务逻辑 过程化语言表达业务逻辑 面向对象和模块化思想表达业务逻辑 服务化和组件化表达业务逻辑 最后谈一谈未来可能的发展方式
  • 刷脸支付是新奇的安全的支付体验

    扫脸支付 刷脸付钱的新奇 便利 有效率和安全的支付体验 能够大大提高客户对刷脸商品的和信赖度 刷脸不仅仅在过程中时间 还将吸引消费者注意力的时间延长了5秒到8秒右左 这几秒就会有巨大的商业价值 是让顾客同商家的经营生产有效多维 充分接触的5

随机推荐

  • OSI/RM七层参考模型---开放式的系统互联参考模型

    一 OSI的设计目的 OSI模型的设计目的是成为一个所有销售商都能实现的开放网路模型 来克服使用众多私有网络模型所带来的困难和低效性 OSI是在一个备受尊敬的国际标准团体的参与下完成的 这个组织就是ISO 国际标准化组织 什么是OSI OS
  • 一个很好用的 vue-picker组件

    vue picker a picker componemt for vue2 0 走了一圈 github 都没有找到自己想要的移动端的 vue picker的组件 于是自己就下手 撸了一个出来 感受下效果图 demo demo 地址 htt
  • Gradle查看第三方依赖关系图

    1 使用Android Studio Terminal 配置变量 前提是 java 和 Android Sdk配置正确 java version adb 进行验证 增加 变量名 GRADLE HOME 变量值 D gradle gradle
  • 期货开户不要过度交易

    不同状态下的心态管理 若你在昨日的交易中有所斩获 那恭喜你取得了小阶段的胜利 你可以自信而放松 但却不可忘乎所以 请记得你做出正确决策时的感觉 并重复此状态在你的下一次交易中 只有在交易时集中注意力观察行情变化 勇敢果断地应对突发变化 你才
  • 【笔记】状态同步笔记

    状态同步位置和技能 适用于fps和mmorpg类游戏 客户端A的同步阀值 减少同步量 客户端A本地会存储一份对其他客户端看到的A的预测状态 当本地真实状态和预测状态偏差超过阀值时 则发起同步 同时更新客户端A本地的预测状态 玩家运动的关键点
  • QT学习笔记(六)

    第11章 容器类 Qt提供了自己的容器类 在编写Qt程序时 既可以使用Qt容器 也可以使用STL容器 连续容器 1 向量QVector
  • 计算机丢失d3dx9_41.dll,d3dx9_41.dll

    不知道怎么下载 点我 游戏介绍 d3dx9 41 dll 当运行程序或者游戏时 系统弹出错误提示 找不到 d3dx9 41 dll 或者 没有找到 d3dx9 41 dll 时 说明您系统中缺失这个dll文件或者该dll文件没有被注册 您需
  • “视频云营业厅”-阿里云 mPaaS 加速金融机构数字化转型

    视频云营业厅 发布 蚂蚁 mPaaS 加速金融机构数字化转型 移动终端时代 随着 5G 基础设施的高速发展 AI 技术的日渐成熟 相关政策的鼓励和加持 以及当前疫情大环境的催化 远程无接触的业务办理方式由创新模式快速走向通用 通过多媒体音视
  • Doris数据模型

    目录 基本概念 Aggregate 模型 示例1 导入数据聚合 示例2 保留明细数据 示例3 导入数据与已有数据聚合 Unique 模型 读时合并 与聚合模型相同的实现方式 写时合并 Duplicate 模型 聚合模型的局限性 Unique
  • 【常见错误】UART接收不到数据错误

    利用FPGA控制DAC产生波形的实验 在完成利用FPGA控制DAC的实验中 在对UART发送数据时 显示中断已经打开 但是把数据发送过去时 并没有显示中断 相当于数据知识发送出去 而没有被接收到 经过debug后 发现原来是在硬件中 viv
  • python上传Excel文件

    python上传Excel文件 方法一 直接使用requests的data files参数 方法二 使用MultipartEncoder 方法一 直接使用requests的data files参数 直接上代码吧 def import car
  • python基础(一)

    python基础 1 数据类型 整数 浮点数 字符串 布尔值 True False 注意大小写 空值 是none 列表list 相当于别的语言里的数组 字典 2 编码设置与注释 编码 coding utf 8 注释 使用 或者是 和 这种表
  • redis的编译安装

    下载 http download redis io releases redis 5 0 8 tar gz tar xzvf redis 5 0 8 tar gz cd redis 5 0 8 hadoop node1 redis 5 0
  • 8位二进制数的原码、反码、补码以及它能表示的范围

    1 正数的反码和补码都与原码相同 2 而负数的反码为对该数的原码除符号位外各位取反 3 负数的补码为对该数的原码除符号位外各位取反 然后在最后一位加1 1 原码表示法规定 用符号位和数值表示带符号数 正数的符号位用 0 表示 负数的符号位用
  • 【Kubernetes存储篇】StorageClass存储类动态生成PV详解

    文章目录 一 StorageClass存储类理论 二 案例 Storageclass存储类实战演示 1 搭建NFS服务端 2 搭建NFS供应商 provisioner 3 创建StorageClass存储类 4 创建PVC 通过Storag
  • 2023年1月9日--1月15日(osg+glsl+ue+socket,42小时,合计1859小时,剩余8141小时)

    目前 ue视频教程进行到了mysql 7 1 tf1 4 11 oss 12 2 蓝图反射 1 9 moba 1 5 webapp 2 4 mmoarpg 00A 04 socket 2 57 Opengl 5 9 GLSL 2 8 周一到
  • Conda建立虚拟环境及torch安装

    本人的系统环境 Ubuntu 16 04 Cuda 9 0 Cudnn 7 0 5 Python 3 7 Anaconda 3 这里推荐大家使用Anaconda 可以比较方便的创建Python虚拟环境 避免不同的Python库之间产生冲突
  • C语言-基本运算

    1 除法运算 整数除于整数 还是整数 参与运算的操作数必须是同类型 1 2的值是0 参与运算的操作数是什么类型 得出的值就是什么类型 10 5 10将右边的10提升为了double类型 自动类型提升 int b 10 5 1 7 自动将大类
  • 李宏毅 - 卷积神经网络(CNN)

    李宏毅 卷积神经网络 CNN 卷积神经网络主要用于图像分类 一张图片通过我们的卷积神经网络也就是Model计算出概率值 通过Cross entropy 交叉熵 归一化到0和1 概率最大的显示为1 其余显示为0 那么一张图片是怎么输入到Mod
  • php批量保存网页上的图片,php网络图片下载至本地(可批量下载)

    class dlImageByWeb 下载图片 public function dl url dir orgName 0 state file get contents url 0 null 0 1 获取网络资源的字符内容 dlDir di