php如何通过URL批量下载图片,这些图片是设计作品,
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php如何通过URL批量下载图片,这些图片是设计作品,相关的知识,希望对你有一定的参考价值。
我用header只能保存一次,用file_put_contents,又不会提示保存?
如果URL有规则,那么可以考虑js做前端,php做后端
具体思路如下
js发送ajax请求给php,php抓取图片,抓取完毕响应前端,前端提示完成(或者更新进度条),然后前端js再次发起ajax请求,直至全部抓取完毕
对了 url有规律的话 用迅雷下载也是挺不错的
参考技术A url是事先准备好的不 ?那可以把url作为一个数组,然后再循环读取进行远程下载。下面是核心代码:
//开始抓取
foreach($imgUrl as $url)
if($url=="") continue;
$filename = $savePath.$url;
$url = $fromDomain.$url;
getImage($url,$filename);
function getImage($url,$filename)
ob_start();
$context = stream_context_create(
array (
'http' => array (
'follow_location' => false // don't follow redirects
)
)
);
//请确保php.ini中的fopen wrappers已经激活
readfile( $url,false,$context);
$img = ob_get_contents();
ob_end_clean();
$fp2 = @fopen($filename,"a");
fwrite($fp2,$img);
fclose($fp2);
echo $filename." ok √<br/>";
完整代码请参考:http://www.daixiaorui.com/read/8.html
还可以自动获取css里面的url下载哦。
谢谢!希望采纳!
PHP 怎么下载没有后缀的图片
比如优酷网的缩略图,没有后缀,php下载它怎么写
保存比较简单,使用 file_get_contents 和 file_put_contents ,比较麻烦(应该是没想到)的是如何获取图片类型,这个可以通过响应头来判断,响应头有一个属性 Content-Type ,它就是 mime ,做好 mime 和 文件扩展名的映射,就可以知道文件的扩展名了。下面这个函数可以做个参考:
* 保存图片
* @param $url 要保存的链接
* @return 保存的字节数,失败则返回 false
*/
function saveFile($url)
// mime 和 扩展名 的映射
$mimes=array(
'image/bmp'=>'bmp',
'image/gif'=>'gif',
'image/jpeg'=>'jpg',
'image/png'=>'png',
);
// 获取响应头
if(($headers=get_headers($url, 1))!==false)
// 获取响应的类型
$type=$headers['Content-Type'];
// 如果符合我们要的类型
if(isset($mimes[$type]))
$fileName=uniqid();
$ext=$mimes[$type];
$file="temp/$fileName.$ext";
// 获取数据并保存
$contents=file_get_contents($url);
return file_put_contents($file, $contents);
return false;
参考技术A 用CURL...
以上是关于php如何通过URL批量下载图片,这些图片是设计作品,的主要内容,如果未能解决你的问题,请参考以下文章