1

nレベルまでの完全なファイル構造を提供する関数があります。

function getDirectory($path = '.', $ignore = '') {
    $dirTree = array ();
    $dirTreeTemp = array ();
    $ignore[] = '.';
    $ignore[] = '..';

    $dh = @opendir($path);

    while (false !== ($file = readdir($dh))) {

        if (!in_array($file, $ignore)) {
            if (!is_dir("$path/$file")) {
//display of file and directory name with their modification time

                            $stat = stat("$path/$file");
                $statdir = stat("$path");


                   $dirTree["$path"][] = $file. " === ". 
                     date('Y-m-d H:i:s', $stat['mtime']) . " Directory == 
                   ".$path."===". date('Y-m-d H:i:s', $statdir['mtime']) ;

            } else {

                $dirTreeTemp = getDirectory("$path/$file", $ignore);
                if (is_array($dirTreeTemp))$dirTree = 
                               array_merge($dirTree, $dirTreeTemp);
            }
        }
    }
    closedir($dh);

    return $dirTree;
}

$ignore = array('.htaccess', 'error_log', 'cgi-bin', 'php.ini', '.ftpquota');
//function call
$dirTree = getDirectory('.', $ignore);
//file structure array print
print_r($dirTree);

今ここで私の要件は、私は2つのサイトを持っています

  • 開発/テストサイト-すべての変更のテストを行う場所
  • 本番サイト-開発サイトでのテストに従って、最終的にすべての変更を投稿します

たとえば、開発/テストサイトで画像のアップロードをテストし、本番サイトで公開するのが適切であることがわかった場合、開発/テストDBの詳細を本番DBに完全に転送しますが、ここで比較したいと思います。対応する画像ファイルをProductionフォルダに転送するためのファイル構造もあります。

画像を編集して同じ名前でアップロードすることで画像を更新する場合があります。この場合、画像ファイルはすでに存在しているため、「file_exist」ロジックの使用が制限されます。状況.... 2つのファイル構造を比較して、要件ごとに同期を実行するにはどうすればよいですか?

編集済み

要件はスクリプトである必要があります。これは、joomlaコンポーネントの機能として必要になります。これに従って返信してください。

4

1 に答える 1

1

これにはrsyncを使用することをお勧めします。

于 2010-05-06T04:56:31.780 に答える