Как сравнить две файловые структуры в PHP? - PullRequest
1 голос
/ 06 мая 2010

У меня есть функция, которая дает мне полную структуру файла вплоть до 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», поэтому для Ситуации такого типа .... КАК МОЖНО СРАВНИТЬ ДВЕ ФАЙЛОВОЙ СТРУКТУРЫ, ЧТОБЫ ПОЛУЧИТЬ СИНХРОНИЗАЦИЮ, ВЫПОЛНЕННУЮ В ТРЕБОВАНИИ ?? EDITED

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

1 Ответ

1 голос
/ 06 мая 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...