php を使用してファイル画像の形式を決定します
コードをコピーします コードは次のとおりです:
$imgurl = "http://www.jb51.net/images/ logo.gif";
/ /方法 1
echo $ext = strrchr($imgurl,'.');
echo '
';
//方法 2
echo $ext1 = substr($imgurl,strrpos ($imgurl, '.' ));
echo '
';
//メソッド 3
echo(@end(explode(".",$imgurl))); ;
//方法 4
echo pathinfo($imgurl,PATHINFO_EXTENSION);
echo '
';
//方法 5
$imginfo= getimagesize($imgurl);
print_r($imginfo);
echo '
'
$imghttp = get_headers($imghttp); '
';
//メソッド 7
echo exif_imagetype($imgurl);
テスト結果:
最初の考え方は、画像パスを扱うことです。画像形式を文字列として検索して判断します。
方法 1: strrchr を使用する
strrchr() 関数は、別の文字列内で最後に出現した文字列を検索し、その位置から文字列の末尾までのすべての文字を返します。
失敗した場合は false を返し、それ以外の場合は false を返します。注: この関数はバイナリセーフです。 方法 2: strrpos
strrpos() 関数は、別の文字列内で最後に出現した文字列を検索します。
成功した場合は位置を返し、それ以外の場合は false を返します。 注: この関数では大文字と小文字が区別されます。大文字と小文字を区別しない検索の場合は、strripos() を使用します。
まず . 記号の位置を計算し、次に substr を使用して文字列をインターセプトします
方法 3: 文字列を配列に分解し、配列の最後のキー値を取得します—————— ———————— ——————————–
2 番目のアイデアは、画像パスをファイル パスとして扱うことです。その場合、ここで gd ライブラリ関数または php ファイル関数が必要になります
方法 4: pathinfo() を使用する
pathinfo(path, options) 関数は、次の配列要素を含む配列
の形式でファイル パス情報を返します: [dirname]
[basename]
[extension]
オプションパラメータ:
オプション。返される配列要素を指定します。デフォルトはすべてです。 可能な値:
PATHINFO_DIRNAME – ディレクトリ名のみを返します
PATHINFO_BASENAME – ベース名のみを返します
PATHINFO_EXTENSION – 拡張子のみを返します
メソッド 5: 画像サイズ形式を取得する getimagesize メソッド。これは gd クラス ライブラリ関数ではありません
このメソッドこれは非常に古典的なもので、画像形式を決定するだけでなく、画像の長さと幅の情報を取得するためにも使用できます
方法 6: get_headers で http ヘッダー情報を取得します
画像パスが標準の URL パスの場合、 http ヘッダー情報
Header を返すことができる get_header 関数を使用できます。さらに、このメソッドは画像ファイルの URL が有効な URL かどうかを判断することもできます。使用方法は「PHP が有効な URL かどうかを判断するためのいくつかのメソッド」を参照してください。リモート URL は有効です。」
方法 7: gd クラス ライブラリ関数を使用する
exif_imagetype () は、画像の最初のバイトを読み取り、その署名を確認します。
適切な署名が見つかった場合は対応する定数を返し、それ以外の場合は FALSE を返します。戻り値は getimagesize() によって返される配列のインデックス 2 と同じですが、この関数の方がはるかに高速です。 返される定数値: 対応する値 たとえば、この例では 1 が返され、これは gif 形式の画像に対応します。
総合評価
現在使用されている主流の方法は方法 1 です。セキュリティ上の問題を考慮する場合は、方法 5 を使用できます。方法 5 は、ファイルが画像ファイルであるかどうかを判断できるため (誰かによる不正アクセスを回避できます)、違法なプログラムをイメージファイルに偽造する)。
http://www.bkjia.com/PHPjc/327399.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/327399.html
技術記事
PHP を使用してファイル イメージの形式を決定し、次のようにコードをコピーします。 ?php $imgurl = "http://www.jb51.net/images/logo.gif" //方法 1 echo $ext = strrchr( $imgurl,'. '); //メソッド...