我正在编写一个扫描特定目录并将每个图像文件名保存到数组的脚本。问题是,我在目录中也有两个txt文件。我只想要数组中的图像文件名,我需要排除txt文件。因此,我不能使用scandir。以下是我到目前为止的情况:
$images = glob($post_dir . "{*.jpg}", GLOB_BRACE);
$listImages=array();
foreach($images as $image){
$listImages[]=$image;
}
foreach ($listImages as $singleImg) {
echo $singleImg;
}
我认为问题可能实际上是设置$ images变量。在第一个foreach中,如果echo $image;
我没有得到任何回报。
答案 0 :(得分:0)
我认为glob
可以做到:
$post_dir = 'giraffe-images/';
$images = glob($post_dir . '*.jpg');
foreach($images as $image){
echo $image;
}
至于你的情况,$listImages
不是第一个foreach
循环之后的数组,因为你正在做:
$listImages = $image;
我认为你的意思是:
$listImages[] = $image;
答案 1 :(得分:0)
我想添加echo $post_dir;
可以让你有一个斜杠,并且你有正确的目录。
我写了这个测试:
<?php
$post_dir = "/tmp/20712147/subdir/";
$images = glob($post_dir . "*.jpg");
$listImages=array();
foreach($images as $image){
$listImages[]=$image;
}
print_r($listImages);
用法:
matt@goliath:/tmp/20712147$ ls
glob.php subdir
matt@goliath:/tmp/20712147$ ls subdir/
readme.txt test1.jpg test2.jpg
matt@goliath:/tmp/20712147$ php glob.php
Array
(
[0] => /tmp/20712147/subdir/test1.jpg
[1] => /tmp/20712147/subdir/test2.jpg
)