在 php exec 函数中无法运行 shell 命令。
如果我在终端中运行
$ avconv -i in.mp4 -f mp3 -ab 192000 -vn rip.mp3
该命令工作正常,该命令用于将视频转换为 mp3。 但是当我尝试通过 PHP 执行时,它不起作用。
exec("avconv -i in.mp4 -f mp3 -ab 192000 -vn rip.mp3");
或者如果我尝试 exec("whoami");给了我正确的输出。
最佳答案
很可能您需要为命令提供文件的完整路径,因为 PHP 中的当前目录与 shell 中的目录不同。
exec("avconv -i /path/to/in.mp4 -f mp3 -ab 192000 -vn /path/to/rip.mp3");
也许即使是 aconv
的完整路径也是安全的:
exec("/bin/avconv -i /path/to/in.mp4 -f mp3 -ab 192000 -vn /path/to/rip.mp3");
使用 which aconv
检查 aconv
的正确路径是什么。
要检查是否有错误,请向 exec
命令添加第二个参数并打印它:
exec('...', $result);
var_dump($result);
关于php - exec 函数在 PHP 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31112506/