【发布时间】:2019-06-04 21:02:31
【问题描述】:
我正在编写如下所示的 php 代码,在该代码中,我使用系统命令 ffmpeg 单击任何 Go 按钮将 mp4 文件转换为 mp3 从表格行中,如下图所示。
<?php
if($_SERVER['REQUEST_METHOD'] == "POST" and isset($_POST['go-button']))
{
foreach ($mp4_files as $f)
{
$parts = pathinfo($f);
switch ($parts['extension'])
{
case 'mp4' :
$filePath = $src_dir . DS . $f;
system('ffmpeg -i ' . $filePath . ' -map 0:2 -ac 1 ' . $destination_dir . DS . $parts['filename'] . '.mp3', $result);
}
}
}
?>
<table>
<tr>
<th>MP4 Name</th>
<th>Action/Status</th>
</tr>
<?php
$file = $mp4_files[$key];
?>
<tr>
<td><?php echo basename($file); ?></td>
<td><button style="width:90px;" type="submit" name="go-button" value="Go" class="btn btn-outline-primary">Go</button</td> <!-- Line#B -->
</tr>
</table>
以上html/php代码显示如下内容:
问题陈述:
我想知道我应该在上面的 php 代码中进行哪些更改,以便 Go 按钮 (Line#B) 以同一行中存在的 mp4 文件为目标。
此时,单击任何表格行中的“Go”按钮,开始将所有 mp4 文件转换为 mp3。
假设 $mp4_files 有两个文件:
- 36031P.mp4
- hello.mp4
-> 第一行 Go 按钮应针对第一个文件 (36031P.mp4)。
-> 第二行 Go 按钮应该针对第二个文件(hello.mp4)。
这是我尝试过的,但添加 break 仅针对 $mp4_files 中的第一个文件,但也单击任何 Go 按钮。
foreach ($mp4_files as $f)
{
// my stuff
break;
}
【问题讨论】:
-
不,它不是重复的。在这里,我想通过单击一个按钮将 mp4 文件一个一个地转换为 mp3。虽然,它具有相同的代码,但需要进行修改。你读过这个问题吗?
-
是的,我已经阅读了这个问题,它与您之前发布的内容基本相同。
-
@PatrickQ 不,这不是一回事。这里第一行 Go 按钮应该针对第一个文件(36031P.mp4),第二行 Go 按钮应该针对第二个文件(hello.mp4),反之亦然。
-
@PatrickQ 我想知道你能否给我一些指导如何继续这个问题。