如何获得passthru()函数的结果?那是它的回归是真还是假?我正在使用passthru()函数开发数据库备份程序。它运行成功但我想在成功与否时向用户备份显示消息。以下是我的代码 - 它运行并创建了一个backup.sql文件,但显示“备份失败”。
<?php
$filename = "backup-" . date("d-m-Y");
$cmd = "mysqldump -u root dudh_society >c:/Backup/$filename.sql";
passthru( $cmd );
if(passthru($cmd) == true)
{
echo "Backup Succesfully";
}
else
{
echo "Backup failed";
}
?>
答案 0 :(得分:6)
该功能的签名是:
void passthru ( string $command [, int &$return_var ] )
这意味着,如果要捕获shell程序的退出状态,请为其指定第二个参数:
passthru($cmd, $status);
if ($status == 0) {
// success
} else {
// failure
}
如果您要转到该页面上的echo
任何其他内容,它将成为输出的一部分。因此,转储的MySQL文件将在其末尾包含“备份成功”,这可能根本不是您想要的。您必须重定向到另一个页面并在那里输出消息:
header("Location: http://example.com/result.php?status=$status");