0

我有一个可以在我付费的服务器上运行的脚本。但是,当我尝试在 localhost 下安装相同的代码时,我会在无限循环中收到此错误。

PHP 警告:readdir() 期望参数 1 是资源。

我环顾四周,有人说这是文件夹访问,但它在远程服务器上工作,而不是在读写访问为 100% 的本地主机上工作。

这可能是由 php.ini 中的设置触发的吗?

我的意思是,除此之外,我看不到任何其他会触发这种情况的东西。

这是错误指向的代码。但我不认为是代码,因为它可以在一台服务器上运行,但不能在另一台服务器上运行。更正我现在已经在 hostgator 上加载了这段代码,它在我的安全注册服务器上也可以正常工作。两者都工作正常。只有 localhost 收到此错误。

 $upgraded_folder_path = $CFG['site']['project_path'] . "languages/" . $CFG['lang']['default'] . "/" . strtolower($value) . "/" . $upgraded_folder_name;
            if (!is_dir($upgraded_folder_path) && !($handle = opendir($upgraded_folder_path)))
                {
                while (false !== ($file = readdir($handle)))
                    {
                    if ($file == "." || $file == "..")
                        {
                        continue;
                        }
                    $file_name = $upgraded_folder_path . "/" . $file;
                    if (is_file($file_name))
                        {
                        require_once($file_name);
                        }
                    }
                closedir($handle);
                }
4

1 回答 1

2

readdir()仅在它是无效资源时调用,即 - 当它无法打开目录时:

 if (!is_dir($upgraded_folder_path) && !($handle = opendir($upgraded_folder_path)))

您只能读取现有目录可以打开的目录。如果您!从该语句中的两个条件中if删除,它应该可以正常工作。尽管如此,您还需要确保该目录存在并且您的用户有权从中读取。

于 2013-01-09T14:13:04.863 回答