Heim > Backend-Entwicklung > PHP-Tutorial > PHP下载/采集远程图片到本地

PHP下载/采集远程图片到本地

WBOY
Freigeben: 2016-07-25 08:42:33
Original
993 Leute haben es durchsucht
  1. /**
  2. * 下载远程图片到本地
  3. *
  4. * @param string $url 远程文件地址
  5. * @param string $filename 保存后的文件名(为空时则为随机生成的文件名,否则为原文件名)
  6. * @param array $fileType 允许的文件类型
  7. * @param string $dirName 文件保存的路径(路径其余部分根据时间系统自动生成)
  8. * @param int $type 远程获取文件的方式
  9. * @return json 返回文件名、文件的保存路径
  10. * @author blog.snsgou.com
  11. */
  12. function download_image($url, $fileName = '', $dirName, $fileType = array('jpg', 'gif', 'png'), $type = 1)
  13. {
  14. if ($url == '')
  15. {
  16. return false;
  17. }
  18. // 获取文件原文件名
  19. $defaultFileName = basename($url);
  20. // 获取文件类型
  21. $suffix = substr(strrchr($url, '.'), 1);
  22. if (!in_array($suffix, $fileType))
  23. {
  24. return false;
  25. }
  26. // 设置保存后的文件名
  27. $fileName = $fileName == '' ? time() . rand(0, 9) . '.' . $suffix : $defaultFileName;
  28. // 获取远程文件资源
  29. if ($type)
  30. {
  31. $ch = curl_init();
  32. $timeout = 30;
  33. curl_setopt($ch, CURLOPT_URL, $url);
  34. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  35. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  36. $file = curl_exec($ch);
  37. curl_close($ch);
  38. }
  39. else
  40. {
  41. ob_start();
  42. readfile($url);
  43. $file = ob_get_contents();
  44. ob_end_clean();
  45. }
  46. // 设置文件保存路径
  47. //$dirName = $dirName . '/' . date('Y', time()) . '/' . date('m', time()) . '/' . date('d', time());
  48. $dirName = $dirName . '/' . date('Ym', time());
  49. if (!file_exists($dirName))
  50. {
  51. mkdir($dirName, 0777, true);
  52. }
  53. // 保存文件
  54. $res = fopen($dirName . '/' . $fileName, 'a');
  55. fwrite($res, $file);
  56. fclose($res);
  57. return array(
  58. 'fileName' => $fileName,
  59. 'saveDir' => $dirName
  60. );
  61. }
复制代码

PHP


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage