3

$bundleファイル名とディレクトリ名を格納する配列があります。

foreachループを使用して配列を実行していて、それらを別のディレクトリ内に移動したいと思います。したがって、私は名前変更方法を使用しており、それはJUSTFILESでかなりうまく機能します。

rename()ただし、そこに他のファイルがあるディレクトリは、メソッドに応答しません。

$folder =  'files';
foreach ($bundle as $value) {
    $ext = pathinfo($value, PATHINFO_EXTENSION);
    if ($ext != "") { //if $value has no suffix it's a fil
        rename(PATH . '/' .$value, $folder . '/' . $value);
    }

    if ($ext == "") { // it's a folder/directory
        //rename doesn't work for directories with contents
        //what method should i use here???
    }

}

pathinfo()この方法がディレクトリかどうかを確認する最良の方法ではないことはわかっていますが、私の小さなプロジェクトでは問題ありません。すべての内容を含むディレクトリを「files」フォルダに移動する方法を知る必要があります。

ご協力ありがとうございました。

4

1 に答える 1

4

globまたはを使用して、そのディレクトリ内のすべてのファイル名を取得する必要がありますscandir。次に、名前を変更してそれらをループし、移動する必要があります。

ホストが許可している場合、他のオプションは、forlinuxまたは/ for windowsコマンドを使用shell_execして実行し、それらをそのように移動することです。execルートを選択する場合は、入力などを保護して、問題が発生しないようにしてください。 mvcopyxcopy

于 2010-08-31T23:23:15.347 に答える