我试图从php脚本中运行lame。
我试过这些,但没有运气,我没有得到任何回报!有什么想法吗?
system('lame', $returnarr);
system('lame --help', $returnarr);
exec('lame', $returnarr);
passthru('lame', $returnarr);
即使这个也没有回报:
exec('which lame', $returnarr);
我在OSX上,最终部署将在Linux上。您对自动wav-> mp3转换有更好的建议吗? 从php,我应该执行一个执行Lame的bash脚本吗?
答案 0 :(得分:4)
尝试这样的事情:
$output = array();
$result = -1;
exec('`/usr/bin/which lame` --help 2>&1', $output, $result);
var_dump($output, $result);
$ output应该是输出中包含的行数组
$ result应该是整数结果代码。 0通常是成功的,> = 1是错误(特定代码取决于应用程序)。
2>& 1部分将STDERR重定向到STDOUT($ output),这通常会被丢弃。因此,如果它出错了,你应该能够看到错误(希望如此)。
如果你为$ result的转储得到-1,那就有一个基础问题,因为那不是一个有效的结果代码(这可能意味着exec被禁用,或者你试图运行的进程因权限受到限制错误等等......
答案 1 :(得分:3)
如果您觉得需要更方便的方式来使用lame
,我建议您使用phplame包装器。使用Composer安装PHP LAME包装器:
{
"require": {
"b-b3rn4rd/phplame": "dev-master"
}
}
答案 2 :(得分:0)
设置错误报告并检查是否可以执行exec。默认情况下,大多数系统都不允许这样做,这是一个严重的安全责任。你必须在php.ini中明确允许执行。
答案 3 :(得分:0)
可能是$PATH
问题。尝试指定跛脚的完整路径,即。 /usr/local/bin/lame
。