0

フォルダーの作成と書き込みに問題があります。

if(file_exists("helloFolder") || is_dir("helloFolder")){
    echo "folder already exists";
} else {
    echo "no folder, creating";
    mkdir("helloFolder", 0755);
}

"no folder, creating"これは、フォルダーが既に存在する場合でも返されます。次に、次のエラーが表示されます。

Warning:  mkdir() [function.mkdir]: No such file or directory in script.php on line 18

警告: file_put_contents(/filename.txt) [function.file-put-contents]: ストリームを開くことができませんでした: 58 行目の script.php で許可が拒否されました

非常に奇妙なのは、これを実行する 3 つの別々のスクリプトを呼び出していることです。1 つのスクリプトは常に機能しますが、他の 2 つのスクリプトでは常にこのエラーが発生します。スクリプトを同期的に呼び出しているので、重複が発生しているとは思いません。他のすべてはそれらの間で同じです。すべてに権限644があり、すべてのフォルダに権限があります755

4

2 に答える 2

4

まず第一に、FileSystem を使用する場合は絶対パッチに従う必要があります。また、2 つの小さな欠陥があります。

  • is_dir()- ファイルが存在するかどうか、およびそのディレクトリをチェックします。したがってfile_exists()、ちょっと冗長です。

  • 他の場所で同じ文字列を使用する場合は、その値を変数に保存することをお勧めします。

最後に、コードは次のようになります。

$target = dirname(__FILE__) . '/hellodir';

if (is_dir($target)) {

    echo "folder already exists";

} else {

    echo "no folder, creating";
    // The 3-rd bool param includes recursion
    mkdir($target, 0777, true);
}

これは期待どおりに機能します。

于 2013-10-02T10:48:31.683 に答える
2

フォルダーが存在しない場合は、フォルダーを作成するために次のコードを試してください。

<?php 

if (file_exists('path/to/directory')) {
    echo "Folder Already Exists";
}
else{
    mkdir('path/to/directory', 0777, true);
    echo "folder Created";
}
?>
于 2013-10-02T10:26:04.667 に答える