我有一个可以在我支付的服务器上运行的脚本。但是,当我尝试在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);
}
答案 0 :(得分:2)
只有在无效资源时才会调用readdir()
,即 - 无法打开目录时:
if (!is_dir($upgraded_folder_path) && !($handle = opendir($upgraded_folder_path)))
您只能读取可以打开的现有目录和。如果从!
- 语句中的两个条件中删除if
,它应该可以正常工作。虽然,您还需要确保目录存在和您的用户有权从中读取。