我尝试了exec
的不同变体:
exec('which ffmpeg', $output, $e);
exec("which ffmpeg", $output);
exec('which ffmpeg 2>&1', $output, $e);
exec('echo "which ffmpeg" 2>&1', $output, $e);
$output = exec('which ffmpeg');
但没有运气。
在控制台中:
[root@gs01]# which ffmpeg
/usr/local/bin/ffmpeg
答案 0 :(得分:1)
将数组作为第二个参数传递给exec()
方法:
$output = array();
exec('which ffmpeg', $output);
var_dump($output);
如果输出参数存在,那么指定的数组将是 填充了命令的每一行输出。尾随 空格,例如\ n,不包含在此数组中。请注意,如果 数组已经包含一些元素,exec()会附加到 数组的结尾。如果您不希望该函数追加元素, 在将数组传递给exec()之前调用数组上的unset()。
有关详细信息,请查看manual。
php > $a = array(); exec('which ffmpeg', $a); var_dump($a);
返回:
array(1) {
[0] =>
string(15) "/usr/bin/ffmpeg"
}
答案 1 :(得分:0)
system()
可能会做你想要的。
ob_start();
system('ls 2>&1');
$ob_contents = ob_get_contents();
ob_end_clean();
echo $ob_contents;
答案 2 :(得分:0)
echo shell_exec('which ffmpeg');
shell_exec以字符串形式返回输出。