"."在哪里 (点)来自使用PHP的'candir'时

Bjö*_*n C 2 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. "'>";
}
Run Code Online (Sandbox Code Playgroud)

排列

(
[0] => .
[1] => ..
[2] => bjornc.jpg
[3] => test_bild3.jpg
)
Run Code Online (Sandbox Code Playgroud)

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'>
Run Code Online (Sandbox Code Playgroud)

我该如何摆脱theese点?
我猜这是导演点......

UPDATE

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

$thumbnails = array_diff(scandir($dir), array('..', '.'));
Run Code Online (Sandbox Code Playgroud)

Som*_*ude 6

点目录是当前目录.Dot-dot是目录.

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

您可以通过简单地检查文件名中的第一个字符是否为点,以及是否只是跳过它(即continue循环)来实现.