ホームページ  >  記事  >  バックエンド開発  >  PHP リモート画像サイズ取得関数の例

PHP リモート画像サイズ取得関数の例

WBOY
WBOYオリジナル
2016-07-25 08:54:291173ブラウズ
  1. //使用法 echo remote_filesize($url,$user='',$pw='');
  2. $url = "http://www.aa.com/librarys/images/random/rand_11. jpg";//图片地址
  3. echoRemote_filesize($url,$user='',$pw='');
  4. functionremote_filesize($uri,$user='',$pw='')
  5. {
  6. / / 出力バッファリングを開始します
  7. ob_start();
  8. // 指定された uri でcurlを初期化します
  9. $ch =curl_init($uri); // ヘッダーを必ず取得します
  10. curl_setopt($ch, CURLOPT_HEADER, 1); // http HEADリクエストにする
  11. curl_setopt($ch, CURLOPT_NOBODY, 1); // 認証が必要な場合は、ここで実行します
  12. if (!empty($user) && !empty($pw))
  13. {
  14. $headers = array('Authorization: Basic ' .base64_encode($user.':'. $pw));
  15. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  16. }
  17. $okay =curl_exec($ch);
  18. curl_close($ch); // 出力バッファを取得します
  19. $head = ob_get_contents(); // 出力バッファをクリーンにして、 // 前のバッファ設定に戻ります
  20. ob_end_clean(); // http ヘッダーの Content-Length // フィールドから数値を取得します
  21. $regex = '/Content-Length:s([0-9].+?)s/';
  22. $count = preg_match( $regex、$head、$matches); // Content-Length フィールドがあった場合、その値は // $matches[1] に格納されます
  23. if (isset($matches[1]))
  24. {
  25. $size = $matches[1];
  26. }
  27. else
  28. {
  29. $size = 'unknown';
  30. }
  31. $last_mb =round($size/(1024*1024),3);
  32. $last_kb =round($size/1024,3);
  33. return $last_kb 。 'KB/' 。 $last_mb.' MB';
  34. }
复制代

实现思路: 最初に CURL がピクチャを圧縮領域に取得し、次にピクチャのコンテンツ長情報を取得することにより、プログラム ピクチャのサイズを取得する機能が実行されます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。