我创建了一个脚本,可以将更改的文件从开发站点复制到可以正常工作的实时站点。
我现在尝试记录已更改的文件,然后将该列表添加到跟踪更改的数据库表中。
我使用shell_exec
对副本运行rsync,然后尝试修剪输出并添加\n
进行格式化。
[输出类似于“发送增量文件列表portalMaint.php发送27,659字节,接收81字节55,480.00字节/秒,总大小为101,582,367,加速值为3,661.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的文件。
谢谢。
我创建了一个脚本,可以将更改的文件从开发站点复制到可以正常工作的实时站点。我现在正在尝试记录更改了哪些文件,然后将该列表添加到数据库表中...
如果您未格式化的输出具有相同的模式:
找到答案!