我正在尝试通过PHP命令行脚本执行linux命令,使用exec命令没有问题。
问题是,如果出现问题(例如用户名/密码不正确),我正在执行的命令(mysqldump)会输出一条错误消息。我似乎无法捕获此错误来记录它。它只是将这个错误打印到屏幕上。
如何不将此错误显示在屏幕上,而是将其放入一个变量中以便在脚本中使用?
谢谢!
发布于 2009-02-02 15:51:46
使用popen运行该流程。本页上的示例#2显示了您正在寻找的内容:
<?php
error_reporting(E_ALL);
/* Add redirection so we can get stderr. */
$handle = popen('/path/to/spooge 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>发布于 2009-02-02 15:43:57
exec("mysqldump -u user -p passwod database > outputfile.sql 2> error.log");发布于 2009-02-02 15:46:34
你需要redirect stderr to stdout,这样你才能捕获它。这个示例将stdout路由到devnull (因此忽略它),并将stderr路由给您:
exec('ls * 2>&1 1>/dev/null');https://stackoverflow.com/questions/503633
复制相似问题