如何在php中使用系统命令?

时间:2019-06-11 18:59:23

标签: php ffmpeg

我正在处理如下所示的PHP代码,其中B行将 mp4转换为mp3

我添加了如果在系统命令后阻止,以便在转换完成但似乎无法正常工作后在网页上打印转换已完成

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 :(得分:0)

您可以使用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界面时清理输入。