ローカルのファイルのサイズを取得するときには filesize() 関数を使えば良いのですが、
どうもリモートでのファイルサイズを取得するには filesize() は使えないらしい。
というわけで探してみたところ、次のような方法で外部のファイルのサイズを取得できるようです。
ただし相手のサーバーの設定で Content-Length ヘッダーを返すようになっていないと使えないので注意。
戻り値は byte 単位です。
<?php
# 外部URIのファイルサイズを取得
function getFileSize($uri) {
$headers = get_headers($uri, 1);
if ((!array_key_exists("Content-Length", $headers))) { return false; }
return $headers["Content-Length"];
}
?>
著色にはPHPソースをハイライト表示を使用しました。