我正在处理如下所示的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
。
答案 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界面时清理输入。