Как использовать системную команду в php? - PullRequest
0 голосов
/ 11 июня 2019

Я работаю над кодом PHP, как показано ниже, в котором преобразование mp4 в mp3 происходит в строке B .

Я добавил if block после системной команды для печати Преобразование завершено на веб-странице после завершения преобразования, но, похоже, оно не работает.

Php код:

if (isset($_POST['id']))
{
    for($i=0; $i <count($mp4_files); $i++) {
        if($i == $_POST['id']) {
            $f = $mp4_files[$i];
            $parts = pathinfo($f); 
            switch ($parts['extension'])
            {  
            case 'mp4' :
                $filePath = $src_dir . DS . $f;

                print_r($f);  // Line A        

                system('ffmpeg -i ' . $filePath . ' -map 0:2 -ac 1 ' . $destination_dir . DS . $parts['filename'] . '.mp3', $result);  // Line B

                if($result)
                {
                    echo "Conversion Completed";
                }

            }
        }
    }
} 

Постановка задачи:

Мне интересно, какие изменения я должен внести в код PHP выше, чтобы после завершения преобразования; на веб-странице должно быть напечатано Conversion Completed.

1 Ответ

0 голосов
/ 11 июня 2019

Вы можете использовать shell_exec, чтобы получить возвращаемое значение, а затем поместить его в оператор if, подобный этому

$output = shell_exec('ffmpeg -i ' . $filePath . ' -map 0:2 -ac 1 ' . $destination_dir . DS . $parts['filename'] . '.mp3');
if ($output) {
   echo "Conversion Completed!";
   // or redirect here
}

Кроме того, убедитесь, что ваши входные данные дезинфицированы, так как они подключены к интерфейсу CLI.

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