0

URLが画像であるかどうかを確認するための気の利いた小さなphp関数を見つけました-その画像がたとえば>1mbであるかどうかを判断する方法もありますか?

解決策が見つかりました:

私はここで実行可能な解決策を見つけました:phpウェブ画像のサイズをkbで取得する方法は?

4

2 に答える 2

2

差出人:https ://stackoverflow.com/a/3894706/187954

<?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";
于 2012-05-07T20:13:13.317 に答える
1

私はこの投稿を参照します、私はそれがあなたの質問に答えると思います。 PHPでリモートファイルのファイルサイズを取得する最も簡単な方法は?

(私が知っている)2つのアプローチがあります。1つは、CURLを使用して、ヘッダーのみをフェッチすることです(より効率的で、信頼性が低くなります)file_get_contents (more reliable, less efficient)

CURLを使用するCONTENT_LENGTHと、ファイルサイズであるヘッダーのみを取得できます。次に、そこから簡単な計算を行って、1MBを超えているかどうかを確認できます。問題は、リモートサーバーがその機能をサポートしていない可能性があることです。

を使用strlen(file_get_contents("YOUR URL"))すると、ファイル内の合計バイを取得できますが、スクリプトは最初にファイルをダウンロードする必要があります。これは、大きな画像の場合に問題になります。

ファイルタイプを確認するには、substrを使用してファイル拡張子を確認します。

このようなものは機能する可能性がありますが、独自の問題があります

$ext = substr($URL, -3, 3);

if($ext == 'jpg' || $ext == 'gif') {
   //is image
}else{
   //not image
}
于 2012-05-07T20:33:39.290 に答える