我的目录结构如下所示。
...photo-album1/
...photo-album1/thumbnails/
假设我们在image1.jpg
内photo-album1/
。此文件的缩略图为tn_image1.jpg
我想做的是检查photo-album1/
中的每个文件,如果它们在photo-album1/thumbnails/
中有缩略图。如果他们刚刚继续,请将文件名发送到另一个函数:generateThumb()
我该怎么做?
答案 0 :(得分:3)
<?php
$dir = "/path/to/photo-album1";
// Open directory, and proceed to read its contents
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
// Walk through directory, $file by $file
while (($file = readdir($dh)) !== false) {
// Make sure we're dealing with jpegs
if (preg_match('/\.jpg$/i', $file)) {
// don't bother processing things that already have thumbnails
if (!file_exists($dir . "thumbnails/tn_" . $file)) {
// your code to build a thumbnail goes here
}
}
}
// clean up after ourselves
closedir($dh);
}
}
答案 1 :(得分:1)
$dir = '/my_directory_location';
$files = scandir($dir);//or use
$files =glob($dir);
foreach($files as $ind_file){
if (file_exists($ind_file)) {
echo "The file $filexists exists";
} else {
echo "The file $filexists does not exist";
}
}
答案 2 :(得分:0)
简单的方法是使用PHP的glob
函数:
$path = '../photo-album1/*.jpg';
$files = glob($path);
foreach ($files as $file) {
if (file_exists($file)) {
echo "File $file exists.";
} else {
echo "File $file does not exist.";
}
}
归功于基础知识。我只是添加了glob。
编辑:正如hakre指出的那样,glob只返回现有文件,所以只需检查文件名是否在数组中就可以加快速度。类似的东西:if (in_array($file, $files)) echo "File exists.";