14

アップロードされた画像拡張子を取得したい。

私が知っているように、最善の方法はgetimagesize()機能です。

しかし、この関数の MIME はimage/jpeg、画像に.jpgまたは.JPEG拡張子がある場合に戻ります。

どうすれば正確に拡張子を取得できますか?

4

9 に答える 9

32

image_type_to_extensionによって返される画像タイプで関数を使用できますgetimagesize

$info = getimagesize($path);
$extension = image_type_to_extension($info[2]);
于 2013-02-07T08:21:31.360 に答える
30
$ext = pathinfo($filename, PATHINFO_EXTENSION);
于 2013-02-07T08:16:52.830 に答える
6

strrpos および substr 関数を使用して、任意のファイルの拡張子を取得することもできます

$filePath="images/ajax-loader.gif";

$type=substr($filePath,strrpos($filePath,'.')+1);

echo "file type=".$type;

出力: gif

.gif のような拡張子が必要な場合

$type=substr($filePath,strrpos($filePath,'.')+0);

出力: .gif

于 2013-02-07T12:54:50.387 に答える
4
$image = explode(".","test.file.hhh.kkk.jpg");
echo end($image);
于 2013-02-07T08:19:03.747 に答える
3

それを行うもう1つの方法:

$ext = strrchr($filename, "."); // .jpg
于 2013-02-07T08:21:59.880 に答える
0
$size = getimagesize($filename);
$ext = explode('/', $size['mime'])[1];
于 2016-09-07T03:54:10.573 に答える
0

次のように、ファイル名をドットで分解し、配列の末尾を取得することもできます。

$ext = end(explode('.', 'image.name.gif'));

によると:PHPでファイル拡張子を見つける2つの異なる方法

そして、あなたのための新しい方法笑:

$ext = explode('.', 'file.name.lol.lolz.jpg');
echo $ext[count($ext) - 1];
于 2013-02-07T08:29:06.880 に答える
0

画像の種類が JPEG か PNG かどうかを確認したい場合は、exif_imagetype関数を使用できます。この関数は、イメージの最初のバイトを読み取り、その署名をチェックします。php.net の簡単な例を次に示します。

<?php
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
   echo 'The picture is not a gif';
}
?>
于 2016-04-11T08:31:44.543 に答える