3

リモートサーバーに保存されている画像ファイルがあるとしましょう (たとえば、この画像を見てみましょう)。ファイルサイズを (PHP コードで) どのように判断できますか?

ファイルがサーバー上にある場合は、filesize (こちらを参照) を使用しますが、リモート ファイル (こちらを参照)では機能しません。

もう 1 つの方法は、「Content-Length」を確認することですが、画像ファイルでは機能しないと思います (こちらを参照) 。

ここに示されているような解決策が必要です(たとえば、次のようなもの:

<?php
function get_remote_size($url) {  // magic
}
echo get_remote_size("http://humus101.com/wp-content/uploads/2009/11/Hummus-soup.jpg");
?>

ただし、画像をダウンロードする必要はありません。それは可能ですか?

4

3 に答える 3

8

(画像のサイズではなく) ファイルのサイズが気になる場合は、Content-Length を取得すると、通常は機能します。

相手側のサーバーがヘッダーを提供しない場合は、ファイルを取得してローカルでサイズを確認するしかありません。

<?PHP
$headers = get_headers('http://humus101.com/wp-content/uploads/2009/11/Hummus-soup.jpg');
$size = null;
foreach($headers as $h){
    /** look for Content-Length, and stick it in $size **/
}
if ($size === null){ //we didn't get a Content-Length header
    /** Grab file to local disk and use filesize() to set $size **/
}

echo "image is $size bytes";
于 2010-10-08T22:15:53.390 に答える
1

echo get_headers($url,1)['Content-Length'];

于 2013-04-24T06:59:25.947 に答える
0

他の誰かが基本的にソケット接続としてそれを行うための機能を持っています: http ://snippets.dzone.com/posts/show/1207

于 2010-10-08T22:09:43.260 に答える