我有这个函数创建一个目录输出数组。
public function getDirContents( $path )
{
$dir = new RecursiveDirectoryIterator( $path, FilesystemIterator::SKIP_DOTS );
// Flatten the recursive iterator, folders come before their files
$it = new RecursiveIteratorIterator( $dir, RecursiveIteratorIterator::SELF_FIRST );
// Maximum depth is 1 level deeper than the base folder
$it->setMaxDepth(1);
$results = array();
// Basic loop displaying different messages based on file or folder
foreach ($it as $contents)
{
$fileInfo = array();
if ( $contents->isFile() )
{
$fileInfo['dir'] = $it->getSubPath();
$fileInfo['file'] = $contents->getFilename();
$results[] = $fileInfo;
}
}
return $results;
}
我在我创建的类中有这个,它按预期工作。我有一个较旧的脚本,我没有重写使用这个类。所以我把这个函数(减去公共)放在另一个包含随机常用函数的文件中,并将该文件包含在我的旧脚本中。但是,当我调用它时,我收到错误
PHP Fatal error: Class 'FilesystemIterator' not found in /aaa/bbb/ccc/ddd/common.php on line 745
如果我删除FilesystemIterator :: SKIP_DOTS它工作正常,但我猜它失去了这个功能。我很好奇为什么会这样。
可能会或可能不会解释可能发生的事情的其他事情。
我成功使用它的类是主站点的一部分。 它错误的脚本实际上是一个子域。 我正在使用php 5.3(单个文件) - 这是bluehost的配置选择一个版本的PHP,这就是我的设置方式。 PHP 5.3(单个php.ini)与PHP 5.3相同,但所有子目录都将使用〜/ public_html / php.ini
这就是为什么我的印象是我的子目录(子域)会使用该文件。
子域与主体中的httaccess不一样。
我不确定这些花絮是否会有所帮助,但我很失落,而且我对此很陌生。
任何帮助都将不胜感激。