2012-04-30 63 views
2

即使目錄存在,爲什麼會出現此錯誤?它工作正常,如果我的目標父目錄,我試圖使用%20而不是太空間,並試圖刪除最後/但沒有作品!PHP opendir問題

警告:執行opendir(/家/ XXXX/user_files /用戶/ XXXX/test目錄/)[function.opendir]:未能打開目錄:在沒有這樣的文件或目錄/家庭/ XXXX /的public_html /公測/ stream._pages/file._list._i.php上線54

(注:XXXX只是我封殺用戶名)

+0

看來目錄名稱中的空格有問題。我怎樣才能讓它**允許**使用空格? –

+0

我認爲你在你的url中缺少public_html。 –

+0

/home/xxxx/user_files/users/xxxx/test目錄/似乎並不適合我。 –

回答

0

製作一個名爲test.php的,並把它放在你的測試目錄。在該文件中,把這個代碼:

<? echo dirname(__FILE__);?> 

然後,訪問test目錄/ test.php的在Web瀏覽器,複製和在test.php的粘貼給出的路徑,並嘗試使用該執行opendir確切路徑。

另一個問題可能是您的目錄的權限是不正確的,嘗試chmodding 777

+0

是的,但我想起來,但該文件夾不在public_html下。也許他可以通過ssh + php CLI做到這一點。 –

+0

或主機的文件管理器。 –

+0

是啊......我無法通過瀏覽器訪問它來做到這一點。該命令將通過SSH執行什麼? –

0

對於任何試圖找到的public_html文件夾以外的文件夾中。

此代碼是由php.net爲opendir()功能提供:

if ($handle = opendir('../../../../')) 
{ 
    echo "Directory handle: $handle\n"; 
    echo "Entries:\n"; 

    /* This is the correct way to loop over the directory. */ 
    while (false !== ($entry = readdir($handle))) 
    { 
     echo "$entry\n"; 
    } 

    /* This is the WRONG way to loop over the directory. */ 
    while ($entry = readdir($handle)) 
    { 
     echo "$entry\n"; 
    } 

    closedir($handle); 
} 

解決方案

$handle我開始檢查出我能在多大程度上與'../'添加儘可能多回去.. /儘可能直到你找到你需要的文件夾。從那裏你可以猜到。

對我來說'../../../../'已經足夠了,它在每臺服務器上都不一樣。