PHP readdir()错误500无尽循环

时间:2013-01-09 14:10:29

标签: php phpmyadmin php-ini

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

  

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

我环顾四周,有些人说是文件夹访问权限,但它可以在远程服务器上工作,而不是localhost,其读写访问权限为100%。

这可以通过php.ini中的设置触发吗?

我的意思是除此之外,我看不到任何会触发这个的东西。

这是错误指向的代码。但我不认为是代码,因为它在一台服务器上运行而在另一台服务器上运行。更正我现在已经在hostgator上加载了这个代码,它也可以在我的securesignup服务器上正常工作。两者都工作正常。只有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);
                }

1 个答案:

答案 0 :(得分:2)

只有在无效资源时才会调用readdir(),即 - 无法打开目录时:

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

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