URLが画像であるかどうかを確認するための気の利いた小さなphp関数を見つけました-その画像がたとえば>1mbであるかどうかを判断する方法もありますか?
解決策が見つかりました:
私はここで実行可能な解決策を見つけました:phpウェブ画像のサイズをkbで取得する方法は?
URLが画像であるかどうかを確認するための気の利いた小さなphp関数を見つけました-その画像がたとえば>1mbであるかどうかを判断する方法もありますか?
解決策が見つかりました:
私はここで実行可能な解決策を見つけました:phpウェブ画像のサイズをkbで取得する方法は?
差出人: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";
私はこの投稿を参照します、私はそれがあなたの質問に答えると思います。 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
}