PHP批量下载html与css中图片文件实例
最近一直很忙,遇到一个手工活,需要下载一些远程的图片,一共一百多张,如果通过手工一张一张的保存,也太耗费时间了,于是上网google了一把,找到PHP批量下载图片文件的方法,原文是出自平凡世界博客的一片关于如何使用PHP批量下载CSS文件中的图片的文章。经过研究改写了一下就可以使用了,方便快捷多了。
PHP批量下载图片文件代码:
代码如下 | 复制代码 |
set_time_limit(0);//设置PHP超时时间 foreach($imagesURLArray as $imagesURL) { |
原理很简单,通过一个含有图片地址的数组循环,然后使用PHP的file_get_contents函数取得图片,在使用file_put_contents函数把图片保存下来。
P.S:一定要加上设置PHP超时时间哦~!
附上原文中通过php下载css中图片的代码:
代码如下 | 复制代码 |
< ?php //note 设置PHP超时时间 //note 取得样式文件内容 //note 匹配出需要下载的URL地址 //note 循环需要下载的地址,逐个下载 |
后来又找到一个php批量下载图片文件
假如现在我现在发现一个网站上的图片保存方式是1001 – 1999目录下都存放着从1开始(数量不等)的.jpg图片,现在我决定用php的方法将图片按照自己需要的样式直接下载到本地
假如图片开始地址为:http://image.xxx.com/img/1001/1.jpg
这时我将1001处放到变量$id,1.jpg放到变量$num.jpg,保存的文件名为$id_$num.jpg
首先确保在此文件执行目录下面建一个名为img的并且可写的文件夹
代码如下 | 复制代码 |
<?php $id= isset($_GET['id']) && intval($_GET['id']) && $_GET['id']>1000 ? $_GET['id'] : 1001; $num= isset($_GET['num']) && intval($_GET['num']) ? $_GET['num'] : 1; $url="http://image.xxx.com/img/{$id}/{$num}.jpg"; $array=get_headers($url,1); //通过返回200和400来判断是增加$id或者$num if(preg_match('/200/',$array[0])){ $new_url="?id={$id}&num=".($num+1); ob_start(); readfile($url); $img = ob_get_contents(); ob_end_clean(); $filename="./img/{$id}_{$num}.jpg"; $f=fopen($filename,'a'); fwrite($f,$img); fclose($f); }else{ $new_url="?id=".($id+1)."&num=1"; } if($id > 1999) exit('全部完成'); //显示当前的状态 echo $url,' - ',$array[0],'<script>location.href="'.$new_url.'";</script>'; |
学校的新闻系统要求有些新闻只开放校内ip浏览,于是重写了一个代码来实现此功能,实现后的结果是,只要把允许访问的ip列入ip.txt这个文件中即可,同时支持c类ip,例如:
ip.txt
192.168
211.67.188
211.67.191.25
代码如下:
代码如下 | 复制代码 |
/* $ip = $_SERVER['REMOTE_ADDR']; ?> |
上面大家可以使用代码来骗过了,下面代码进行升级
代码如下 | 复制代码 |
<?php |
引用片段:
代码如下 | 复制代码 |
$oBlock_ip = new block_ip(); |
通过WEB服务器来实现PHP多线程功能。
当然,对多线程有深入理解的人都知道通过WEB服务器实现的多线程只能模仿多线程的一些效果,并不是真正意义上的多线程。
但不管怎么样,它还是能满足我们的一些需要的,在需要类似多线程的功能方面还是可以采用这个类。
代码如下 | 复制代码 |
/** |
使用方法:
代码如下 | 复制代码 |
$thread = new thread(); |
说明:
addthread() 是添加线程函数,第一个参数是函数名,之后的参数(可选)为传递给指定函数的参数。
runthread() 是执行线程的函数。
例2.利用curl实现多线程下载图片
其实是php利用curl实现的一个多线程类),有了这个类,我们也可利用该类执行多线程任务了!
代码如下 | 复制代码 |
<?php |
php使用多线程下载类示例:下载远程图片
代码如下 | 复制代码 |
|
先不说别的我们直接看二维数组按某个字段排序实例
代码如下 | 复制代码 |
<?php /** * @author yebihai http://www.111cn.net * @desc 按二维数组的某一个字段进行升降排序 * @data * $testData = array( array('price'=>19), array('price'=>121), array('price'=>115), array('price'=>113), array('price'=>112) ); */ class sortClass{ //升序 function sortArrayAsc($preData,$sortType='price'){ $sortData = array(); foreach ($preData as $key_i => $value_i){ $price_i = $value_i[$sortType]; $min_key = ''; $sort_total = count($sortData); foreach ($sortData as $key_j => $value_j){ if($price_i<$value_j[$sortType]){ $min_key = $key_j+1; break; } } if(empty($min_key)){ array_push($sortData, $value_i); }else { $sortData1 = array_slice($sortData, 0,$min_key-1); array_push($sortData1, $value_i); if(($min_key-1)<$sort_total){ $sortData2 = array_slice($sortData, $min_key-1); foreach ($sortData2 as $value){ array_push($sortData1, $value); } } $sortData = $sortData1; } } return $sortData; } //降序 function sortArrayDesc($preData,$sortType='price'){ $sortData = array(); foreach ($preData as $key_i => $value_i){ $price_i = $value_i[$sortType]; $min_key = ''; $sort_total = count($sortData); foreach ($sortData as $key_j => $value_j){ if($price_i>$value_j[$sortType]){ $min_key = $key_j+1; break; } } if(empty($min_key)){ array_push($sortData, $value_i); }else { $sortData1 = array_slice($sortData, 0,$min_key-1); array_push($sortData1, $value_i); if(($min_key-1)<$sort_total){ $sortData2 = array_slice($sortData, $min_key-1); foreach ($sortData2 as $value){ array_push($sortData1, $value); } } $sortData = $sortData1; } } return $sortData; } } |
后面整理一些关于数组排序的函数
数据排序函数有
•sort() 函数用于对数组单元从低到高进行排序。
•rsort() 函数用于对数组单元从高到低进行排序。
•asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
•arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
•ksort() 函数用于对数组单元按照键名从低到高进行排序。
•krsort() 函数用于对数组单元按照键名从高到低进行排序。
array_multisort() 函数对多个数组或多维数组进行排序
如果date时间不一致可以使用date_default_timezone_set设置时区:
代码如下 | 复制代码 |
<?php
//获取当前时间
echo date('Y-m-d H:i:s',time());
echo "<br>";
//对当前时间进行计算
echo date('Y-m-d H:i:s',time()-600); //减10小时
echo "<br>";
//时间戳转时间
echo date('Y-m-d H:i:s',1364277600);
//时间转时间戳(仅精确到秒)
echo strtotime("2013-03-26 14:00");
echo "<br>";
?> |
方法一:
date_default_timezone_set('PRC');
没有返回值。下面再直接使用date函数就OK了
$time = date(Y."年".m."月".d."日".G."时".i."分");
方法二:
修改php.ini中的;date.timezone = 为date.timezone = "Asia/Shanghai"(或者改为date.timezone = “PRC”)并去掉前面的分号,重启Apache即可。
**一定记得加上引号哦
相关文章
- 下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
使用PHP+JavaScript将HTML页面转换为图片的实例分享
这篇文章主要介绍了使用PHP+JavaScript将HTML元素转换为图片的实例分享,文后结果的截图只能体现出替换的字体,也不能说将静态页面转为图片可以加快加载,只是这种做法比较interesting XD需要的朋友可以参考下...2016-04-19Jupyter Notebook读取csv文件出现的问题及解决
这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06- 这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
- 今天小编在这里就来给各位Photoshop的这一款软件的使用者们来说说把古装美女图片转为细腻的工笔画效果的制作教程,各位想知道方法的使用者们,那么下面就快来跟着小编一...2016-09-14
- 这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
- php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
- 有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
- 这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
- 这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮...2013-10-13- 这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
- C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
php无刷新利用iframe实现页面无刷新上传文件(1/2)
利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25- 下面小编就为大家带来一篇利用JS实现点击按钮后图片自动切换的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-25
- 要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
- 又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
- Photoshop的这一款软件小编相信很多的人都已经是使用过了吧,那么今天小编在这里就给大家带来了用Photoshop软件制作枪战电影海报的教程,想知道制作步骤的玩家们,那么下面...2016-09-14
- 今天小编在这里就来给photoshop的这一款软件的使用者们来说下AI源文件转photoshop图像变模糊问题的解决教程,各位想知道具体解决方法的使用者们,那么下面就快来跟着小编...2016-09-14
- 这篇文章主要为大家详细介绍了js实现上传图片及时预览的相关资料,具有一定的参考价值,感兴趣的朋友可以参考一下...2016-05-09