如何强制PHP文档返回的八位字节流上的头?

如何强制PHP文档返回的八位字节流上的头?,php,header,content-type,Php,Header,Content Type,我已经试图在这个网站上找到这个问题的答案,但我有点经验不足,我的知识还有限 我的情况如下:我有一个无法编辑的外部PHP文件,它以八位字节流的形式返回MP3文件。问题是,我需要它是一个音频/mp3,以便与HTML5音频播放器一起使用。我怎样才能做到这一点 我想我不能就这样做 $mp3_url = 'http://example.org/get.php?file=123'; header('Content-Type: audio/mp3'); ,可以吗?使用音频/mpeg作为内容类型一种方法是在服务

我已经试图在这个网站上找到这个问题的答案,但我有点经验不足,我的知识还有限

我的情况如下:我有一个无法编辑的外部PHP文件,它以八位字节流的形式返回MP3文件。问题是,我需要它是一个音频/mp3,以便与HTML5音频播放器一起使用。我怎样才能做到这一点

我想我不能就这样做

$mp3_url = 'http://example.org/get.php?file=123'; header('Content-Type: audio/mp3');

,可以吗?

使用音频/mpeg作为内容类型

一种方法是在服务器上设置代理,例如/your/script.php

标题'Content-Type:audio/mp3',true,200; 回显文件_get_contents$_get['url']; 跳过安全检查

然后你就可以把它当作


另一种方法是使用Nginx或Apache等Web服务器设置代理。

使用另一个php脚本作为代理,即:

<?php

$mp3 = file_get_contents("http://example.org/get.php?file=123");
header('Content-Type: audio/mp3');
echo $mp3;

据我所知和所见,音频/mp3是有效的。谷歌似乎证实了这一点。有没有办法将其包含在现有的PHP脚本中,还是必须包含在自己的PHP文件中?除此之外,非常感谢@Aidalumina,您应该在Web服务器的公共目录中创建新脚本,例如/www/xproject/public/proxy.php,然后从客户端向其发出请求:http://yourdomain.com/proxy.php?url=....Okay,谢谢,这很有道理。实际的mp3文件不是存储在服务器上,而是转发到客户端,只是带有不同的头。对吗?如果不是的话,你能试着详细说明一下情况吗?非常感谢@AidanLumina,而不是请求http://remote.com/a.mp3 你会要求的http://your-own.com/proxy.php?url=...remote-url编码在这里。因此,如果你有一个带有远程mp3链接的HTML,你必须对它们进行适当的更改。我知道这一点。如果我这样做的话,我很确定我的服务器很容易受到攻击。我希望很多人会经常使用我想要实现的东西,所以如果我使用proxy.php,带宽使用率会像火箭一样上升。还有别的选择吗?JS?这样做的外部服务?也许是个解决办法?