function copy_directory( $source, $destination ) {
if ( is_dir( $source ) ) {
@mkdir( $destination );
$directory = dir( $source );
while ( FALSE !== ( $readdirectory = $directory->read() ) ) {
if ( $readdirectory == '.' || $readdirectory == '..' ) {
continue;
}
$PathDir = $source . '/' . $readdirectory;
if ( is_dir( $PathDir ) ) {
copy_directory( $PathDir, $destination . '/' . $readdirectory );
continue;
}
copy( $PathDir, $destination . '/' . $readdirectory );
}
$directory->close();
}else {
copy( $source, $destination );
}
}
これは、ディレクトリとファイル全体を別の宛先にコピーするための私のスクリプトです。しかし、私には小さな問題があります
私のフォルダは次のようなものです:
cinch.v2.1.1\cinch\cinch\other folders and files
loopy.v2.1.3\loopy\loopy\other folders and files
musy.v3.1.4\musy\musy\other folders and files
...
構造全体ではなく、サブフォルダーとファイルを含む最後の (深さ 3) シンチ、ルーピー、ムジー フォルダーのみをコピーする必要があります。スクリプトの変更方法。
コピー構造は次のようになります。
cinch\other folders and files
loopy\other folders and files
musy\other folders and files
私はから始めます
if (strpos($readdirectory, '.') === false && strpos($readdirectory, '_') === false) {
しかし、これは必要に応じて機能しません。