检查文件夹是否包含php中任何类型的图像

时间:2015-07-08 04:53:35

标签: php image

我想知道是否可以检查给定文件夹中是否包含任何类型的图像。

例如:假设我的文件夹位置为/var/www/html/project/images/

我想检入图片文件夹,如果它包含任何图片......

它可以包含以下类型.jpeg, .jpg, .png, .gif

图片没有名称。

3 个答案:

答案 0 :(得分:4)

glob可用于解决此问题。 Glob是一个可以找到与模式匹配的路径名的函数,类似于regex。这里有一些示例代码,用于搜索文件夹中的jpg,png和gif文件,然后回显出这些文件的名称。

<?php
$path = '/var/www/html/project/images/';
$files = glob($path."*.{jpg,jpeg,png,gif}", GLOB_BRACE);
print_r($files);
?>

如果您只是想检查是否有图片,请使用以下代码代替print_r($files);

if (!empty($files)) {
    echo 'There are images in this folder';
}
else {
    echo "No images were found here"; 
}
?>

如果您想了解有关递归检查目录的更多信息,请查看readdir

答案 1 :(得分:1)

这应该有效,没有测试。

$images = array('jpg','png','jpeg','gif');
$files = scandir('your/dir');
$found = false;
foreach($files as $key => $value) {
    $ext = pathinfo($value, PATHINFO_EXTENSION);
    if(in_array($ext,$images)) {
        $found = true;
        break;
    }
}

echo $found;

答案 2 :(得分:0)

您可以通过preg_help来实现目标,该目标会通过将正则表达式传递给它来过滤文件名。

检查此代码:

<?php    
$dir_f = "/var/www/html/project/images/";
$files = preg_grep('~\.(jpeg|jpg|png|gif)$~', scandir($dir_f));
if (!empty($files)) {
    echo 'yaaay, I got images in my dir !';
}
else {
    echo "Oh god, no images here !"; 
}
?>