Я пытаюсь запустить хромой из 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?
Попробуйте что-то вроде этого:
$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 для дампа результата $, возникает фундаментальная проблема, потому что это не допустимый код результата (вероятно, это означает, что exec отключен, или процесс, который вы пытаетесь запустить, ограничен из-за ошибок разрешений или например) …
Если вы чувствуете потребность в более удобном способе работы с lame
, я бы рекомендовал использовать упаковку phplame . Установите оболочку PHP LAME с помощью Composer:
{ "require": { "b-b3rn4rd/phplame": "dev-master" } }
установить отчет об ошибках и проверить, можете ли вы выполнить exec. По умолчанию большинство систем не позволяют этого, это серьезная ответственность за безопасность. Вы должны явно разрешить execs в php.ini.
Может быть проблемой $PATH
. Попробуйте указать полный путь к хромому, т.е. /usr/local/bin/lame
.