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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值