2

我正在尝试从 php 脚本运行跛脚。

我已经尝试过这些,但没有运气,我没有得到任何回报!有任何想法吗?

system('lame', $returnarr);
system('lame --help', $returnarr);
exec('lame', $returnarr);
passthru('lame', $returnarr);

即使这个也不返回:

exec('which lame', $returnarr);

我在 OSX 上,最终部署将在 Linux 上。您对自动 wav->mp3 转换有更好的建议吗?从 php,我应该执行一个执行 Lame 的 bash 脚本吗?

4

4 回答 4

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 已禁用,或者您尝试运行的进程由于权限错误或这样的)...

于 2010-05-17T17:43:28.500 回答
3

如果您觉得需要更方便的使用方式lame,我建议使用phplame包装器。使用 Composer 安装 PHP LAME 包装器:

{
    "require": {
        "b-b3rn4rd/phplame": "dev-master"
    }
}
于 2015-01-09T03:58:28.603 回答
0

设置错误报告并检查您是否可以执行执行。默认情况下,大多数系统都不允许这样做,这是一个严重的安全责任。您必须在 php.ini 中明确允许执行。

于 2010-05-17T17:23:31.777 回答
0

可能是个$PATH问题。尝试指定la脚的完整路径,即。/usr/local/bin/lame.

于 2010-05-17T17:23:56.643 回答