Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP脚本运行CLI命令_Php_Ubuntu_Terminal_Avcodec - Fatal编程技术网

使用PHP脚本运行CLI命令

使用PHP脚本运行CLI命令,php,ubuntu,terminal,avcodec,Php,Ubuntu,Terminal,Avcodec,我想使用avconv将flv文件转换为mpg,然后使用终端连续运行。我的问题是使用php脚本运行命令。我写了一个代码,但并没有得到结果。我的代码如下 <?php $cmd="avconv -i http://localhost/test3/a.flv http://localhost/test3/intermediate1.mpg"; $results = shell_exec($cmd.'2>&1'); ?> 我也尝试了以下代码,但没有运气 <?php

我想使用avconvflv文件转换为mpg,然后使用终端连续运行。我的问题是使用php脚本运行命令。我写了一个代码,但并没有得到结果。我的代码如下

<?php
$cmd="avconv -i http://localhost/test3/a.flv http://localhost/test3/intermediate1.mpg";
$results = shell_exec($cmd.'2>&1');
?>  

我也尝试了以下代码,但没有运气

<?php
$cmd="avconv -i /home/elby/workspace/test3/a.flv /home/elby/workspace/test3/intermediate1.mpg";
$results = shell_exec($cmd.'2>&1');
echo $results;
?>

首先,第一个执行示例是无意义的,因为它包含两个参数:

avconv [global options] [[infile options][-i infile]]... {[outfile options] outfile}...
你们不能仅仅告诉程序把文件保存到像这样的
http
协议

第二次调用。。。这有几个可能的问题:

  • 您是从web还是从CLI运行脚本?Web服务器可能(也可能会)使用不同的用户,这些用户无权访问文件夹
  • PHP脚本已经完成,视频转换需要花费更多的时间
  • PHP可能有
  • PHP可能已经打开了
  • PHP可能在
    PATH
    环境变量方面有问题,请尝试使用绝对路径
  • 禁用时,您可能已经记录了错误,但未显示

使用avconv的绝对路径。

还有更多信息吗?代码是如何失败的?有任何错误消息吗?您是否检查了shell_exec是否对您有效?请尝试类似的
echo shell_exec('echo foo')根据配置,可以禁用外壳函数。在
2>&1
之前缺少一个空格,导致命令中出现文件名
intermediate1.mpg2
$cmd="avconv -i /home/elby/workspace/test3/a.flv /home/elby/workspace/test3/intermediate1.mpg";
$results = shell_exec($cmd.' 2>&1');
echo $results;