2013-01-09 65 views
0

我有一個腳本,在我付費的服務器上工作。然而,當我嘗試在localhost下安裝相同的代碼時,我在無限循環中得到了這個錯誤。PHP readdir()錯誤500無盡循環

PHP警告:readdir()期望參數1是資源。

我環顧四周,有人說這是文件夾訪問,但它在遠程服務器上工作,而不是本地主機,讀取和寫入訪問是100%。

這是否可以通過php.ini中的設置觸發?

我的意思是除此之外,我看不到任何會觸發此事的事情。

這是錯誤指向的代碼。但我不認爲這是代碼,因爲它在一臺服務器上運行,而不是另一臺服務器上運行。更正我現在已經加載了這個代碼在hostgator上,它也可以在我的securesignup服務器上正常工作。兩者都可以。只有本地主機得到這個錯誤。

$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); 
       } 

回答

2

你打電話readdir()只有當它是一個無效資源,即 - 當它未能打開目錄:

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

您只能讀取現有的目錄一個你可以打開。如果您從if -statement中的兩個條件中刪除!,它應該可以正常工作。儘管如此,您還需要確保您的用戶有權從其中讀取目錄

+0

是否會在host-gator服務器上工作?有任何想法嗎? – user1170117

+0

可能是因爲該文件夾存在於一臺服務器上,但不在另一臺服務器上。 – SDC

+0

@ user1170117如果該目錄存在,它將不會進入'if'語句 - 因此不會出錯。 – newfurniturey