Бегущий хромой от php - PullRequest
       33

Бегущий хромой от php

2 голосов
/ 17 мая 2010

Я пытаюсь запустить lame из php-скрипта.

Я пробовал это, но не повезло, я ничего не получил! Есть идеи?

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

даже этот ничего не возвращает:

exec('which lame', $returnarr);

Я нахожусь на OSX, и окончательное развертывание будет на Linux. Есть ли у вас лучшие предложения для автоматического преобразования wav-> mp3? С php, я должен выполнить bash-скрипт, который выполняет Lame?

Ответы [ 4 ]

4 голосов
/ 17 мая 2010

Попробуйте что-то вроде этого:

$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), который обычно отбрасывается. Так что, если он выдает ошибку, вы должны увидеть ошибку (надеюсь).

Если вы получите -1 для дампа $ result, возникнет фундаментальная проблема, потому что это неправильный код результата (вероятно, это означает, что exec отключен или процесс, который вы пытаетесь запустить, ограничен из-за разрешений ошибки или такие) ...

3 голосов
/ 09 января 2015

Если вам нужен более удобный способ работы с lame, я бы рекомендовал использовать оболочку phplame Установите оболочку PHP LAME с помощью Composer:

{
    "require": {
        "b-b3rn4rd/phplame": "dev-master"
    }
}
0 голосов
/ 17 мая 2010

Может быть $PATH проблема. Попробуйте указать полный путь к lame, т.е. /usr/local/bin/lame.

0 голосов
/ 17 мая 2010

установить отчеты об ошибках и проверить, можете ли вы выполнять exec. По умолчанию большинство систем этого не допускают, это серьезная ответственность за безопасность. Вы должны явно разрешить execs в php.ini.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...