php - 使用 PHP 'scandir' 时 "."(点)来自哪里

标签 php scandir

我有点困惑。
我正在构建一个 PHP 函数来循环输出指定目录中的图像。

PHP

$dir = "bilder/".$objekt[0]['objekt_nr']."/thumbnail/";
$thumbnails = scandir($dir);

print_r($thumbnails);

foreach ($thumbnails as $value) {
   echo "<img src='".$dir.$value. "'>";
}

数组

(
[0] => .
[1] => ..
[2] => bjornc.jpg
[3] => test_bild3.jpg
)

HTML

<img src='bilder/22159/thumbnail/.'>
<img src='bilder/22159/thumbnail/..'>
<img src='bilder/22159/thumbnail/bjornc.jpg'>
<img src='bilder/22159/thumbnail/test_bild3.jpg'>

如何去掉这些点?
我猜这是目录点..

更新

最简单的方法可以在 php.net 手册中找到

$thumbnails = array_diff(scandir($dir), array('..', '.'));

最佳答案

点目录是当前目录。点-点是目录。

如果你想在一个目录中创建文件列表,你应该跳过这两个目录,或者任何以点开头的目录(在 Linux 和 OSX 等 POSIX 系统上,这些目录应该是是隐藏目录)。

您可以通过简单地检查文件名中的第一个字符是否是点来做到这一点,如果是则跳过它(即您继续循环)。

关于php - 使用 PHP 'scandir' 时 "."(点)来自哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36149598/

相关文章:

c - 如何为 scandir() 实现自定义 compar()

php - Laravel API 路由返回 404

php - 在 Mac 上通过 PHP 中的 scandir 访问外部 NAS/Volume

php - Zoho CRM :STUCK on Step 3: Generate Access Token and Refresh Token

PHP和Json,在input中输入数据后更新div。不行

PHP: scandir() 太慢

php - Linux 中的 scandir 重音问题在 OSX 中工作正常

c++ - 如何在 scandir 中参数化选择函数

php - 函数中的可变长度引用参数列表

php - 为什么我的MySQL中有空记录?