[英]scandir() -> 2 folders -> show 1 result
大家好,
我想扫描2个不同文件夹的内容,并以1个列表/数组显示结果。 那怎么可能?
<?php
$ordner = "images/";
$alledateien = scandir($ordner);
foreach ($alledateien as $datei) {
$dateiinfo = pathinfo($ordner."/".$datei);
$size = ceil(filesize($ordner."/".$datei)/1024);
if ($datei != "." && $datei != ".." && $datei != ".DS_Store")
{
?>
<?php echo $dateiinfo['filename']; ?><br>
<?php
};
};
?>
<?php
$ordner = "images/" AND "pdf/";
...
谢谢您的支持!
托马斯
简单技巧:
function getScanDir($firstFolder, $secondFolder)
{
return array_merge(
scandir($firstFolder),
scandir($secondFolder)
);
}
函数仅合并两个数组(第一个和第二个文件夹的结果)并输出一个数组。 由于scandir()
输出基本数组(数字键),因此不会丢失任何数据。
编辑
我忘记了输出数组中的目录名称。 现在更复杂了。 在那里,我们可以使用另一个技巧:
function getScanDir($firstFolder, $secondFolder)
{
return array_merge(
createArrayDirectory($firstFolder),
createArrayDirectory($secondFolder)
);
}
function createArrayDirectory($folderName)
{
return array_filter(scandir($folderName), function(&$value) use ($folderName) {
return $folderName . '/' . $value;
});
}
现在,您应该拥有一个数组,其中包含来自两个不同目录的文件和目录。
尝试使用数组:
<?php
$ordners = ["images/", "pdf/"];
foreach ($ordner as $order)
{
$alledateien = scandir($ordner);
foreach ($alledateien as $datei)
{
$dateiinfo = pathinfo($ordner."/".$datei);
$size = ceil(filesize($ordner."/".$datei)/1024);
if ($datei != "." && $datei != ".." && $datei != ".DS_Store")
echo $dateiinfo['filename'].'<br>';
}
}
?>
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.