2016-04-28 2 views
1

Я уже пытался найти ответ на этот вопрос на этом сайте, но я немного неопытен, и мои знания еще ограничены.Как заставить заголовок для октетного потока, возвращаемого PHP-документом?

Моя ситуация выглядит следующим образом: У меня есть внешний PHP-файл (скажем http://example.org/get.php) (который я не могу редактировать), который возвращает файл MP3 в виде октетного потока. Проблема в том, что мне нужно, чтобы это был аудио/mp3, чтобы использовать его с аудиоплеер HTML5. Как я могу это достичь?

Я думаю, что я не могу просто сделать что-то вроде

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

, я могу?

ответ

0

Один из способов заключается в настройке прокси на сервере, например, /your/script.php может выглядеть

header('Content-Type: audio/mp3', true, 200); 
echo file_get_contents($_GET['url']); 

(проверка безопасности пропущена)

Затем вы можете использовать его в качестве <a href="/your/script.php?url=http%3A%2F%2Fexample.org%2Fget.php%3Ffile%3D123">link</a>

Другой способ заключается в настройке прокси с помощью веб-сервера, такие как Nginx или Apache.

+0

Есть ли способ включить это в уже существующий PHP-скрипт или он должен быть в собственном PHP-файле? Помимо этого, большое спасибо! – AidanLumina

+0

@AidanLumina, вы должны создать новый скрипт где-нибудь в общедоступном каталоге вашего веб-сервера, например '/ www/xproject/public/proxy.php', а затем запросить его у клиента:' http://yourdomain.com/ proxy.php? URL = ... '. –

+0

Хорошо, спасибо, это имеет смысл. Фактический mp3-файл не сохраняется на сервере, а пересылается клиенту, просто с другим заголовком. Это верно? Если это не так, можете ли вы попытаться выяснить, как обстоят дела? Это было бы очень полезно! – AidanLumina

-1

использование audio/mpeg в качестве типа содержимого

+0

аудио/mp3 действует с того, что я знаю и видел. Google, похоже, подтверждает это. – AidanLumina

0

Используйте другой PHP скрипт, чтобы действовать в качестве прокси-сервера, то есть:

<?php 

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