PHP-从从目录文件获取的值中删除“.”和“..”
我使用此代码是为了从目录中获取文件列表:PHP-从从目录文件获取的值中删除“.”和“..”,php,directory,Php,Directory,我使用此代码是为了从目录中获取文件列表: $dir = '/restosnapp_cms/images/'; if ($dp = opendir($_SERVER['DOCUMENT_ROOT'] . $dir)) { $files = array(); while (($file = readdir($dp)) !== false) { if (!is_dir($dir . $file)) { $files[] = $file;
$dir = '/restosnapp_cms/images/';
if ($dp = opendir($_SERVER['DOCUMENT_ROOT'] . $dir)) {
$files = array();
while (($file = readdir($dp)) !== false) {
if (!is_dir($dir . $file)) {
$files[] = $file;
}
}
closedir($dp);
} else {
exit('Directory not opened.');
}
我想去掉“.”和“…”的值
有可能这样做吗?谢谢 只需首先检查它们:
while ($file = readdir($p)) {
if ($file == '.' || $file == '..') {
continue;
}
// rest of your code
}
只需首先检查它们:
while ($file = readdir($p)) {
if ($file == '.' || $file == '..') {
continue;
}
// rest of your code
}
比*dir函数有趣得多:
$dir = new DirectoryIterator($_SERVER['DOCUMENT_ROOT'] . $dir);
foreach($dir as $file) {
if (!$file->isDir() && !$file->isDot()) {
$files[] = $file->getPathname();
}
}
但底线是,无论采用哪种方式,都需要使用条件函数。比*dir函数有趣得多:
$dir = new DirectoryIterator($_SERVER['DOCUMENT_ROOT'] . $dir);
foreach($dir as $file) {
if (!$file->isDir() && !$file->isDot()) {
$files[] = $file->getPathname();
}
}
但底线是,无论采用哪种方式,都需要使用条件。当然,在输出之前可以对其进行过滤。有许多数组函数可以以某种方式提供帮助。或者,您可以在循环中输入if,如果不是,则只输出名称。或者…这不是更容易吗$files=array_filterglob$dir/*,'is_file';当然,您可以在输出之前对其进行过滤。有许多数组函数可以以某种方式提供帮助。或者,您可以在循环中输入if,如果不是,则只输出名称。或者…这不是更容易吗$files=array_filterglob$dir/*,'is_file';工作起来很有魅力!谢谢:+1-我遇到过一些情况,在这些情况下,我后来想添加更多不应列出的文件名,在这种情况下,需要一个in_array$文件,array'.','。。。有时更容易。就像一个符咒!谢谢:+1-我遇到过一些情况,在这些情况下,我后来想添加更多不应列出的文件名,在这种情况下,需要一个in_array$文件,array'.','。。。有时更容易。