-
- //使用法 echo remote_filesize($url,$user='',$pw='');
- $url = "http://www.aa.com/librarys/images/random/rand_11. jpg";//图片地址
- echoRemote_filesize($url,$user='',$pw='');
- functionremote_filesize($uri,$user='',$pw='')
- {
- / / 出力バッファリングを開始します
- ob_start();
- // 指定された uri でcurlを初期化します
- $ch =curl_init($uri); // ヘッダーを必ず取得します
- curl_setopt($ch, CURLOPT_HEADER, 1); // http HEADリクエストにする
- curl_setopt($ch, CURLOPT_NOBODY, 1); // 認証が必要な場合は、ここで実行します
- if (!empty($user) && !empty($pw))
- {
- $headers = array('Authorization: Basic ' .base64_encode($user.':'. $pw));
- curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
- }
- $okay =curl_exec($ch);
- curl_close($ch); // 出力バッファを取得します
- $head = ob_get_contents(); // 出力バッファをクリーンにして、 // 前のバッファ設定に戻ります
- ob_end_clean(); // http ヘッダーの Content-Length // フィールドから数値を取得します
- $regex = '/Content-Length:s([0-9].+?)s/';
- $count = preg_match( $regex、$head、$matches); // Content-Length フィールドがあった場合、その値は // $matches[1] に格納されます
- if (isset($matches[1]))
- {
- $size = $matches[1];
- }
- else
- {
- $size = 'unknown';
- }
- $last_mb =round($size/(1024*1024),3);
- $last_kb =round($size/1024,3);
- return $last_kb 。 'KB/' 。 $last_mb.' MB';
- }
复制代
实现思路:
最初に CURL がピクチャを圧縮領域に取得し、次にピクチャのコンテンツ長情報を取得することにより、プログラム ピクチャのサイズを取得する機能が実行されます。
|