PHP获取内容类型

时间:2010-10-12 21:19:20

标签: php types

我想知道是否有办法找出给定字符串是否是图像,例如

$a = 'php';// output false
$b = 'jpg';// output true
$c = 'js'; // output false
$d = 'png';// output : true

我知道可以通过针对数组进行检查来完成,但我只是想知道是否有更好的解决方案。

2 个答案:

答案 0 :(得分:3)

我发现了这个:http://www.php.net/manual/en/function.finfo-file.php

<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
foreach (glob("*") as $filename) {
    if substr(finfo_file($finfo, $filename), 0, 6) == "image"
        printf("%s is an image file.", $filename);
}
finfo_close($finfo);
?>

此外,就像佩卡的评论所说,你正在混淆你的头衔和问题。如果要查找特定文件的内容类型,可以使用我提供的代码段。

否则,它只是听起来你想看一个文件的扩展是否表明它是一个图像。然后,您只想测试预定义扩展数组中字符串的存在:

<?php

$imageExtensions = array('jpg', 'gif', 'png', ....);
$someFileExtension = 'jpg';

if in_array($someFileExtension, $imageExtensions)
    printf("%s is an extension indicative of an image file.", $someFileExtension);

?>

答案 1 :(得分:1)

http://php.net/manual/en/function.exif-imagetype.php返回文件的图像类型,如果不是图像,则返回false。

http://pel.sourceforge.net/是一个梨包。