如何获得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";
}
?>
Run Code Online (Sandbox Code Playgroud)
该功能的签名是:
void passthru ( string $command [, int &$return_var ] )
Run Code Online (Sandbox Code Playgroud)
这意味着,如果要捕获shell程序的退出状态,请为其指定第二个参数:
passthru($cmd, $status);
if ($status == 0) {
// success
} else {
// failure
}
Run Code Online (Sandbox Code Playgroud)如果您要访问echo该页面上的任何其他内容,它将成为输出的一部分.因此,转储的MySQL文件将在其末尾包含"备份成功",这可能根本不是您想要的.您必须重定向到另一个页面并在那里输出消息:
header("Location: http://example.com/result.php?status=$status");
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
5426 次 |
| 最近记录: |