Как запустить программу из командной строки (например, lame или svn) с PHP?

В частности, мне нужно автоматизировать кодирование аудиофайлов в mp3 с помощью LAME. Вам не нужно знать LAME, чтобы ответить на этот вопрос, я мог бы говорить о svn или какой-то другой программе ..

Я знаю, как использовать LAME в командной строке для этого, по одному файлу за раз.

Однако я хотел бы сделать это с помощью скрипта php, чтобы я мог конвертировать сразу несколько файлов (например, все файлы в каталоге)

Итак, что меня смущает, так это то, как я должен вызывать программу, LAME. Я определенно мог бы использовать shell_exec () http://php.net/manual/en/function.shell-exec.php

Но разве это «странный» способ сделать это, раз уж я прохожу через оболочку?

Должен ли я как-то использовать lame_enc.dll вместо lame.exe?

Кажется, я мог бы как-то сделать это с помощью exec (), также http://php.net/manual/en/function.exec.php

Но в таком случае, как мне привести аргументы?

Или есть лучший способ сделать это, может быть, файл .bat? Я запускаю окна

Должен ли я как-то использовать lame_enc.dll вместо lame.exe?


person Jonah    schedule 21.02.2010    source источник


Ответы (2)


Это возможно сделать с помощью PHP. Нетипичный сценарий использования, но это возможно. Поскольку вы работаете в Windows, лучше подойдет bat-файл, поскольку в этом случае вам не понадобится синтаксический анализатор PHP для запуска скрипта.

Поместите те же команды, которые вы запускали бы в консоли, для преобразования ваших аудиофайлов с LAME в * .bat. Затем запустите летучую мышь, как если бы это был обычный исполняемый файл.

person Cesar    schedule 21.02.2010
comment
В порядке. Думаю, тогда воспользуюсь файлом .bat. Согласно этому: windowsitpro.com/article/articleid/13443/ Похоже, я могу передать параметры в файл bat, что идеально - person Jonah; 21.02.2010

Вы можете использовать exec() и указывать аргументы так же, как в командной строке. Другие варианты описаны на странице руководства для PHP Выполнение программы.

person Amber    schedule 21.02.2010