《PHP实现的下载远程图片自定义函数分享》要点: 本文介绍了PHP实现的下载远程图片自定义函数分享,希望对您有用。如果有疑问,可以联系我们。
<?php
/**
?* PHP下载远程图片到本地
?*
?* @param $url string 远程文件地址
?* @param $filename string 保存后的文件名(为空时则为随机生成的文件名,否则为原文件名)
?* @param $fileType array 允许的文件类型
?* @param $dirName string 文件保存的路径(路径其余部分根据时间系统自动生成)
?* @param $type int 远程获取文件的方式
?* @return json 返回文件名、文件的保存路径
?* @author blog.snsgou.com
?*/
function getImage($url,$fileName = '',$dirName,$fileType = array('jpg','gif'),$type = 1)
{
?if ($url == '')
?{
??return false;
?}
?// 获取文件原文件名
?$defaultFileName = basename($url);PHP教程
?// 获取文件类型
?$suffix = substr(strrchr($url,'.'),1);
?if (!in_array($suffix,$fileType))
?{
??return false;
?}PHP教程
?// 设置保存后的文件名
?$fileName = $fileName == '' ? time() . rand(0,9) . '.' . $suffix : $defaultFileName;PHP教程
?// 获取远程文件资源
?if ($type)
?{
??$ch = curl_init();
??$timeout = 15; // 超时时间
??curl_setopt($ch,CURLOPT_URL,$url);
??curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
??curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
??$file = curl_exec($ch);
??curl_close($ch);
?}
?else
?{
??ob_start();
??readfile($url);
??$file = ob_get_contents();
??ob_end_clean();
?}PHP教程
?// 设置文件保存路径
?$dirName = $dirName . '/' . date('Y',time()) . '/' . date('m',time()) . '/' . date('d',time()) . '/';
?if (!file_exists($dirName))
?{
??mkdir($dirName,0777,true);
?}PHP教程
?// 保存文件
?$res = fopen($dirName . $fileName,'a');
?fwrite($res,$file);
?fclose($res);PHP教程
?return "{'fileName':$fileName,'saveDir':$dirName}";
}PHP教程
// 举例
// 返回:{'fileName':13668030896.jpg,'saveDir':/www/test/img/2013/04/24/}
echo getImage('http://img.wan.renren.com/images/2013/0430/1367294093164.jpg','','d:/PHP/data',array('jpg',1); PHP教程
《PHP实现的下载远程图片自定义函数分享》是否对您有启发,欢迎查看更多与《PHP实现的下载远程图片自定义函数分享》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|