Я создал скрипт, который копирует измененные файлы с сайта разработки на работающий сайт, который работает безупречно.
Я сейчас пытаюсь записать, какие файлы были изменены, а затем добавить этот список в таблицу БД, которая отслеживает изменения.
Я использую shell_exec
для запуска rsyn c для копия, а затем пытаюсь обрезать вывод и добавить \n
для форматирования.
Вывод выглядит как «отправка инкрементного списка файлов portalMaint. php отправлено 27 659 байт, получено 81 байт 55 48080 байт / с c общий размер 101,582,367 ускорение составляет 3661,95 ".
Вот код, который у меня есть:
$command = "sudo -S rsync -av ".$exclude." ".$source." ".$dest." --delete 2>&1";
// --- Issue command and check for errors.
$exErrors = shell_exec($command);
if (stripos($exErrors, "error:") !== false || stripos($exErrors, "[sudo]")) {
$error = "Uh-OH, we have a problem! Don't Panic!";
$errors = $exErrors;
include("head.php");
include("template_".$currentPage.".html");
include("foot.php");
exit();
}else{
$filesCopied = $exErrors;
$filesCopied = substr($filesCopied, 0, strrpos($filesCopied, " sent "));
$filesCopied = preg_replace("/\s+/", "\n", $filesCopied);
}
Это НЕ работает. $filesCopied
в конечном итоге будет пустым.
Если я закомментирую $filesCopied = substr($filesCopied, 0, strrpos($filesCopied, " sent "));
, я получу весь вывод в неотформатированном виде.
Что я делаю не так? Мне просто нужны файлы, которые были изменены 1 на строку.
Спасибо.