我想知道是否可以检查给定文件夹中是否包含任何类型的图像。
例如:假设我的文件夹位置为/var/www/html/project/images/
我想检入图片文件夹,如果它包含任何图片......
它可以包含以下类型.jpeg, .jpg, .png, .gif
图片没有名称。
答案 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 !";
}
?>