我正在尝试读取文件名current.conf,然后使用保存在其中的文件夹名称为opendir();当我打开时:
$file = fopen("current.conf","r");
$lines = fread($file,"10");
fclose($file);
$lines = "/".$lines."/";
echo $lines;
$dir=opendir($lines);
$files=array();
while (($file=readdir($dir)) !== false)
{
if ($file != "." and $file != ".." and $file != "index.php")
{
array_push($files, $file);
}
}
closedir($dir);
current.conf中只有一行:
2.1-2328
我无法打开conf文件中指定的文件夹。我有一种感觉它与conf文件的格式有关,但不确定。
答案 0 :(得分:3)
我怀疑目录不存在(或者您没有权限读取它),但没有特定错误(opendir最有可能抛出E_WARNING - 检查您的日志等)
顺便提一下,您可以重新编写代码以降低其复杂性,如下所示:
<?php
// Grab the contents of the "current.conf" file, removing any linebreaks.
$dirPath = '/'.trim(file_get_contents('current.conf')).'/';
$fileList = scandir($dirPath);
if(is_array($fileList)) {
foreach($fileList as $file) {
// Skip the '.' and '..' in here as required.
echo $file."\n";
}
}
else echo $dirPath.' cound not be scanned.';
?>
在这种情况下,对scandir的调用将抛出E_WARNING。