【发布时间】:2020-11-18 08:57:53
【问题描述】:
我已经构建了一个简单的 CAPTCHA PHP 脚本,现在我正在尝试创建一个脚本,该脚本可以为看不到或根本看不到的人生成 mp3 音频。我的目标只是挑战自己,所以我不喜欢使用外部库,但我希望能得到一些帮助。我尝试使用 file_put_contents() 函数来合并音频(每个字母都有一个 mp3 音频),令我惊讶的是,它起作用了,但对我来说,像加入文本文件一样加入音频文件似乎是不正确的。 所以我的第二次尝试是这样做:
<?php
session_start();
$letter_array = str_split($_SESSION["captcha"]); //this is an array with the letters of the captcha
header('Content-Type: audio/mpeg');
header('Cache-Control: no-cache');
header('Pragma: no-cache');
header('Expires: 0');
$audio = '';
foreach ($letter_array as $letter) {
$audio .= file_get_contents("audios/".$letter.".mp3");
}
echo $audio;
?>
然后我可以将此文件嵌入到 HTML 中的标签中,它也可以工作。我知道这两种解决方案基本上都是相似的,但我发现第二种方式更简洁。我的问题是:虽然它工作得很好,但以这种方式做这样的事情是否可以,或者是错误的,还是不推荐?我不太了解编码和 mp3 文件的结构,所以我不知道这个解决方案是否适用于所有人。我也愿意接受建议
谢谢
【问题讨论】:
-
没有。这不是 MP3 的工作方式。您要么必须调用一个可以将音频正确组合到单个文件中的实用程序,要么制定一个客户端解决方案来按顺序播放每个文件。
-
@Sammitch 这是 MP3 的工作原理。