0

我有一个在终端中测试过的命令,它工作正常,但是当我在脚本中调用该命令以在浏览器上显示输出时,它似乎不起作用。我的命令需要时间才能在终端中显示输出,这将是它不显示在浏览器上的原因。

set_time_limit (0); 
echo '<pre>';
$output=array();
$last_line = system('cat /home/me/dev/test/working/test_string.txt | java -jar /home/simon/logstash/build/logstash-1.1.10.dev-monolithic.jar agent -f /home/me/dev/test/working/my_itch_con.config',$output);
echo '</pre>';
echo "Complete";
print_r($output);
echo "<br>"; 
4

2 回答 2

2

的参数system(它不会显示输出,它只是返回命令的状态)

命令

将要执行的命令。

return_var

如果 return_var 参数存在,则执行命令的返回状态将写入此变量。

/////////////////////////// ........ ..................................................... .................... //////////////////////////// ///////////

Use `exec` command instead

命令

将要执行的命令。

输出

如果存在输出参数,则指定的数组将填充命令的每一行输出。此数组中不包含尾随空格,例如 \n。请注意,如果数组已经包含一些元素,则 exec() 将附加到数组的末尾。如果您不希望函数附加元素,请在将数组传递给 exec() 之前对数组调用 unset()。

return_var

如果 return_var 参数与输出参数一起存在,则执行命令的返回状态将写入此变量。

例如:-

exec('whoami', $test, $arr);

print_r($test);

在浏览器中它 o/p

Array ( [0] => nt authority\system ) 

欲了解更多信息

http://php.net/manual/en/function.exec.php

于 2013-01-25T07:00:17.080 回答
0

确认是否在块system中禁用 php.ini 中的功能disable_function

当设置 error_reporting(E_ALL) 显示所有错误

于 2013-01-25T06:33:51.123 回答