PHP はリモート イメージをローカルにダウンロード/収集します

WBOY
リリース: 2016-07-25 08:42:33
オリジナル
950 人が閲覧しました
PHP
  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. // ファイルを取得しますtype
  21. $suffix = substr(strrchr($url, '.'), 1);
  22. if (!in_array($suffix, $fileType))
  23. {
  24. return false;
  25. }
  26. // 保存したファイル名を設定
  27. $fileName = = '' ? time() . rand(0, 9) . $suffix : $defaultFileName;
  28. // if ($type) {
  29. $ ch =curl_init( );
  30. $timeout = 30;
  31. curl_setopt($ch, CURLOPT_URL, $url);
  32. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  33. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  34. $file =curl_exec($ ch);
  35. curl_close($ch);
  36. }
  37. else
  38. {
  39. ob_start();
  40. readfile($url);
  41. $file = ob_get_contents();
  42. ob_end_clean();
  43. }
  44. / / ファイルの保存パスを設定します
  45. //$dirName = $dirName . date('Y', time()) . date( 'd', time());
  46. $dirName = $dirName . date('Ym', time());
  47. if (!file_exists($dirName))
  48. {
  49. mkdir($dirName, 0777) , true);
  50. }
  51. // ファイルを保存します
  52. $res = fopen($dirName . '/' . $fileName, 'a');
  53. fwrite($res, $file);
  54. fclose($res) ;
  55. return array (
  56. 'fileName' => $fileName,
  57. 'saveDir' => $dirName
  58. );
  59. }
コードをコピー

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート