2012-03-04 7 views
0

私は、ウェブデベロッパ/音楽プロデューサーです。私は私の個人的なウェブサイトで働いています。 jplayer jquery Plugin + Php Curlを使用してファイルを取得しています。 しかし、私は301 error permanently movedを得ていますか?なぜ私はこれを得ているのか分かりません。私はaudio/mepegのコンテンツタイプヘッダーを送信しましたが、結果は出ませんでした。php Curl open mp3 file

HTMLマークアップ:

<?php 
function beats(){ 
// <li><a href="hosts/beats/1.mp3" class="track track-default">1</a></li> 
$beats = array("...."=>md5(1),"...."=>md5(2),"....."=>md5(3)); 
    foreach($beats as $key=>$value){ 
     echo " 
     <li><a href=\"hosts/beats/beat.php?".md5('url')."=$value\" class=\"track\">$key</a></li>"; 
    } 
} 
?> 
<ul class="playlist"> 
    <li><span>Select a track : </span></li> 
    <? Beats(); ?> 
</ul> 

PHPカールファイル:

<?php 
if(isset($_REQUEST[md5('url')])){ 
    $beats = array(1=>md5(1),2=>md5(2),3=>md5(3)); 
    foreach($beats as $beatFile=>$url){ 
     if($_REQUEST[md5('url')] == $url){ 
      $BeatFile = $beatFile; 
     } 
    } 
$url = $BeatFile.".mp3"; 
// Initializing curl 
$ch = curl_init($url); 
// Configuring curl options 
$options = array(
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_HTTPHEADER => array('type=audio/mpeg') , 
    CURLOPT_POSTFIELDS => $url 
); 
// Setting curl options 
curl_setopt_array($ch,$options); 
// Getting results 
$beat = curl_exec($ch); 
echo $beat; 
}else{ 
echo "No Permission"; 
} 
?> 

答えて

2

サーバーがリダイレクトされますが、cURLののデフォルトの動作は、リダイレクトを無視することです。オプションCURLOPT_FOLLOWLOCATIONをオンにして、301リダイレクトに従います。

また、CURLOPT_HTTPHEADERを削除する必要があります。 type=というようなヘッダはなく、たとえあったとしても、リクエストではなくレスポンスに適用されます。

+0

あなたは私のためのコードスニップあなたが今、そのだけで何のmp3ファイル –

+0

@YoungnateDaGreat空のページを返さない話をしているものとのイムunfamilairを投稿することができます:あなたの '$のoptions'配列に' CURLOPT_FOLLOWLOCATION => true'を追加、および削除同じ配列からの 'CURLOPT_HTTPHEADER'エントリです。これはリダイレクトエラーを解決するはずです。 –

+0

私が空のページを取得している理由は何ですか?私はエラーページではないが、私はmp3が取得されることを知る必要がありますか?私はデフォルトのビデオプレーヤーがレンダリングするためにそこにコンテンツタイプを入れなければならないと思いましたか? –