![](/img/trans.png)
[英]How do I skip files which I don't have permission to read/access when using scandir(), to avoid all the logged errors?
[英]Skip all folders when using scandir
我正在收集给定文件夹中的文件列表,其中可能有文件和文件夹。
我可以根据需要手动跳过文件夹,但是如何自动跳过所有文件夹并仅将文件存储在阵列中?
$moduleArray = array_diff(scandir('module/', 1), array('..', '.', 'admin'));
好吧,我明白了...但是使用scandir
搜索时有什么办法呢?
foreach($moduleArray as $module) {
$end = explode(".", $module);
if(end($end) == "php") {
$name = substr($module, 0, -8);
echo " <a href=\"index.php?page=$name\"> $name </a><br />";
}
}
另外,您也可以使用SPL DirectoryIterator
的->isDir()
:
$moduleArray = array();
foreach (new DirectoryIterator('module/') as $file) {
if($file->isDir()) continue;
$moduleArray[] = $file->getPathname(); // or getFilename()
}
您可以搜索数组并删除文件夹; 这是我所知道的最好方法。
for($i=0;$i<count($moduleArray);$i++)
{
if(is_dir($moduleArray[$i])
{
//Skip It
}
}
$moduleArray = array_diff(scandir('module/', 1), array('..', '.'));
$fileListArray = array();
foreach ($moduleArray as $module){
if (!is_dir($module)){
$fileListArray[] = $module;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.