Как сравнить две файловые структуры в PHP?

У меня есть функция, которая дает мне полную структуру файла до уровня 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);

Теперь вот мое требование, у меня есть два сайта

  • Сайт разработки / тестирования - где я тестирую все изменения
  • Сайт производства - где я наконец публикую все изменения в соответствии с тестом на сайте разработки

Теперь, например, я протестировал загрузку изображений на сайте разработки / тестирования и счел целесообразным опубликовать их на сайте производства, тогда я полностью перенесу подробности базы данных разработки / тестирования в базу данных производства, но теперь я хочу сравнить файловая структура, а также для передачи соответствующего файла изображения в производственную папку.

Может быть ситуация, когда я обновляю изображение, редактируя изображение и загружая его с тем же именем, теперь в этом случае файл изображения уже будет присутствовать там, что ограничит использование логики "file_exist", поэтому для этих типов ситуации....КАК МОЖНО СРАВНИТЬ ДВЕ ФАЙЛОВОЙ СТРУКТУРЫ, ЧТОБЫ ПОЛУЧИТЬ СИНХРОНИЗАЦИЮ, ВЫПОЛНЕННУЮ В ТРЕБОВАНИИ??

РЕДАКТИРОВАНИЕ

требование должно быть скриптом, который мне понадобится как функциональность компонента Joomla. Пожалуйста, ответьте согласно этому.

1 ответ

Решение

Я бы предложил использовать для этого rsync.

Другие вопросы по тегам