[英]Output of exec() in php is empty array
我有以下代码使用exec()
执行mysqldump
。 它没有用,我想弄清楚命令行抛出什么输出。 所以我打印了$output
和$worked
。 但是我得到的只是1
和一个空数组 。
按照手册进行操作: If the output argument is present, then the specified array will be filled with every line of output from the command.
但是为什么这会抛出一个空数组? 正如某些帖子所建议的那样,我在命令末尾包含2>&1
,但仍然无法正常工作。 我想知道执行此命令时终端输出的内容。
$worked
输出1
是什么意思?
任何帮助将不胜感激!
脚本:
$command='mysqldump --opt -u ' .$db['username'] .' -p' .$db['password'] .' --databases ' .$db['database'] .' > '.$mysqlExportPath .' 2>&1';
$output=array();
exec($command,$output,$worked);
print $worked.'<br>';
print_r($output);
输出:
1
Array ( )
我想知道执行此命令时终端输出的内容。
没事 ! (如果您只是自己尝试过,您会立即看到的)。 您的命令将mysqldump
的结果定向到$mysqlExportPath
表示的路径中的文件。 我不知道您为什么期望它转为标准输出 。
也许一些换行符可以使您的代码更具可读性(不, 实质上是 !):
$command
= 'mysqldump --opt'
. ' -u ' . $db['username']
. ' -p' . $db['password']
. ' --databases ' . $db['database']
. ' > ' . $mysqlExportPath // <---- Here you go!
. ' 2>&1';
删除重定向,或在文件$mysqlExportPath
找到数据; 您的来电!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.