I already tried to find an answer to this question on this site but I'm a bit unexperienced and my knowledge is limited yet.
My situation is as follows: I have an external PHP file (say http://example.org/get.php) (which I cannot edit) that returns an MP3 file as an octet-stream. The problem is that I need it to be an audio/mp3 in order to use it with an HTML5 audio player. How can I achieve this?
I think I cannot just do something like
$mp3_url = 'http://example.org/get.php?file=123'; header('Content-Type: audio/mp3');
, can I?
One way is to setup a proxy on your server, e.g. /your/script.php
might look like
header('Content-Type: audio/mp3', true, 200);
echo file_get_contents($_GET['url']);
(security checks skipped)
Then you can use it as <a href="/your/script.php?url=http%3A%2F%2Fexample.org%2Fget.php%3Ffile%3D123">link</a>
Another way is to setup a proxy using Web server such as Nginx or Apache.
use audio/mpeg
as content-type
Use another php script to act as a proxy, i.e:
<?php
$mp3 = file_get_contents("http://example.org/get.php?file=123");
header('Content-Type: audio/mp3');
echo $mp3;