我有一台运行PHP版本5.4.16的服务器,我正在尝试使用scandir列出目录中的文件。我很难搞清楚问题所在。我已经尝试了../store/dir_to_scan和/ root / store / dir_to_scan。我也尝试过使用glob和scandir,如下所示,两者都无济于事。如果我删除了dir_to_scan目录,它将列出/ root / store中的目录,这是我觉得最令人费解的。我还将文件夹和文件chmod到777只是为了确保它不是权限问题。我收到错误“Array([type] => 2 [message] =>为foreach()提供的参数无效[file] => /root/html/test.php [line] => 5) “还运行正确的目录设置。
感谢您的帮助。
目录设置
/root/html //where php script is run
/root/store/dir_to_scan //files I need to list
PHP脚本
<?
#$files = glob('../store/dir_to_scan/*', GLOB_BRACE);
$files = scandir("/root/store/dir_to_scan/");
foreach($files as $file) {
//do work here
if ($file === '.' || $file === '..') {
continue;
}
echo $file . "<br>";
}
print_r(error_get_last());
?>
答案 0 :(得分:0)
这可能很愚蠢,但尝试在结尾处提供一个尾部斜杠:
/ root / store / dir_to_scan - &gt;
$files = scandir("/root/store/dir_to_scan/");
答案 1 :(得分:0)
这应该可以解决你的问题
$carpeta= "/root/store/dir_to_scan";
if(is_dir($carpeta)){
if($dir = opendir($carpeta)){
while(($file = readdir($dir)) !== false){
if($file != '.' && $file != '..' && $file != '.htaccess'){
echo $file; //or save file name in an array..
// $array_file[] = $file;
}
}
closedir($dir);
}
}