Setting up apache to serve PHP when an MP3 file is requested(设置 apache 在请求 MP3 文件时为 PHP 提供服务)
问题描述
我正在研究一种通过 PHP 提供 MP3 文件的方法,经过一些帮助形成如此庞大的文件,我让它工作了 这里
I'm working on a way to serve up MP3 files through PHP and after some help form the SO massive, I got it working here
但是,当我将它用作这样的音频标签中的源时,该示例似乎不起作用
However, that example doesn't appear to work when I use it as the source in an audio tag like this
<html>
<head>
<title>Audio Tag Experiment</title>
</head>
<body>
<audio id='audio-element' src="bXVzaWMvbXAzLnBocA==" autoplay controls>
Your browser does not support the audio element.
</audio>
</body>
</html>
这里是 PHP
<?php
$track = "lilly.mp3";
if(file_exists($track))
{
header("Content-Transfer-Encoding: binary");
header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3");
header('Content-length: ' . filesize($track));
header('Content-Disposition: filename="lilly.mp3"');
header('X-Pad: avoid browser bug');
Header('Cache-Control: no-cache');
readfile($track);
}else{
echo "no file";
}
所以我在想(这可能是一个非常糟糕的主意,你告诉我)当有人请求 .MP3 时,我可能能够设置 Apache 来提供 PHP 文件.
So I'm thinking (and this may be a really bad idea, you tell me) that I might be able to set up Apache to serve a PHP file when someone requests an .MP3.
所以我有三个问题
- 这行得通吗
- 好主意/坏主意?
- 我需要做什么?将AddType application/x-httpd-php .mp3"放入 httpd conf 中可以吗?
推荐答案
您的代码中存在一些错误:
There are some errors in your code:
- 一个资源只能有一个内容-输入值.因此,您必须决定要使用的媒体类型.我建议
audio/mpeg. - 您忘记在内容中指定配置-处置.如果您只想提供文件名而不想更改配置,请使用默认值
inline.
其余看起来不错.但如果找不到文件,我也会发送 404 状态码.
The rest looks fine. But I would also send the 404 status code if the file cannot be found.
$track = "lilly.mp3";
if (file_exists($track)) {
header("Content-Type: audio/mpeg");
header('Content-Length: ' . filesize($track));
header('Content-Disposition: inline; filename="lilly.mp3"');
header('X-Pad: avoid browser bug');
header('Cache-Control: no-cache');
readfile($track);
exit;
} else {
header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found', true, 404);
echo "no file";
}
这篇关于设置 apache 在请求 MP3 文件时为 PHP 提供服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:设置 apache 在请求 MP3 文件时为 PHP 提供服务
- openssl_digest vs hash vs hash_hmac?盐与盐的区别HMAC? 2022-01-01
- 覆盖 Magento 社区模块控制器的问题 2022-01-01
- 如何使用 Google API 在团队云端硬盘中创建文件夹? 2022-01-01
- 如何从数据库中获取数据以在 laravel 中查看页面? 2022-01-01
- PHP - if 语句中的倒序 2021-01-01
- Laravel 5:Model.php 中的 MassAssignmentException 2021-01-01
- 如何在 Symfony2 中正确使用 webSockets 2021-01-01
- PHP foreach() 与数组中的数组? 2022-01-01
- 使用 GD 和 libjpeg 支持编译 PHP 2022-01-01
- Oracle 即时客户端 DYLD_LIBRARY_PATH 错误 2022-01-01
