2012-04-30 13 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 directory /が私にとって正しい道ではないようです。 –

答えて

0

test.phpをというファイルを作成し、あなたにそれを置きますテストディレクトリ。 、Webブラウザでのテストディレクトリ/ test.phpを訪問test.phpをに与えられたように、パスをコピーして貼り付け、opendirなどにその正確なパスを使用してみてください、そして、

<? echo dirname(__FILE__);?> 

:このファイルでは、このコードを置きます。

もう一つの問題は、ディレクトリのパーミッションが正しくないことかもしれないが、public_htmlのフォルダの外のフォルダを検索しようとしている誰のために777

+0

私の心に来たが、フォルダはpublic_htmlの下にはありませんでした。おそらく、彼はssh + php CLIを使ってこれを行うことができました。 –

+0

またはホストのファイルマネージャ。 –

+0

ええと...私はこれを行うためにブラウザ経由でアクセスすることはできません。コマンドはSSH経由で何をするのでしょうか? –

0

にchmoddingしてみてください。

このコードはopendir()機能にphp.netで提供されています

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 .. /あなたが必要なフォルダに自分自身を見つけるまで、可能な限り。そこからあなたは私が推測する。

私にとっては'../../../../'で十分でしたが、それはすべてのサーバーで異なります。