我想从文件夹中循环显示图像和缩略图,然后将它们插入到数据库中。 我想使用is_dir来过滤掉目录。
我有:
$images = scandir('./images/all_comics/');
$thumbs = scandir('./images/thumbnails/');
for($x=0; $x<count($images); $x++)
{
if(!is_dir($images[$x]))
{
//This shows all images WITHOUT directories
echo $images[$x];
//This is STILL adding images AND directories to database
mysql_query("INSERT INTO images (imgpath, thumbpath) VALUES ('$images[$x]', '$thumbs[$x]')");
}
}
我直接在那里检查了!is_dir, echo $ images [$ x] ,根据需要回显没有目录的所有图片。
但是当我检查数据库中的插入时,我看到目录已被添加为记录。这是为什么?
谢谢!
答案 0 :(得分:2)
(删除旧答案,因为问题是拼写错误)
scandir
返回给定目录中的文件列表。当您使用is_dir
时,它会在当前目录中查找这些文件。我想你需要做的是:
if(!is_dir("./images/all_comics/" . $images[$x])) {
....
答案 1 :(得分:2)
您的echo
在if
内执行,但查询未执行:
for($x=0; $x<count($images); $x++)
{
if(!is_dir($images[$x]))
{
echo $images[$x]; //This shows all images WITHOUT directories
mysql_query("INSERT INTO images (imgpath, thumbpath) VALUES ('$images[$x]', '$thumbs[$x]')");
}
}
答案 2 :(得分:0)
你也可以使用glob
$files = glob('./images/all_comics/*');
foreach ($files as $file) {
if (!is_dir($file)) {
//Do Insert
}
}