【问题标题】:php Curl open mp3 filephp curl打开mp3文件
【发布时间】:2012-03-22 05:24:12
【问题描述】:

我是一名网络开发人员/音乐制作人。我正在我的个人网站上工作。 我正在使用jplayer jquery Plugin + Php Curl 来检索文件。 但是我得到了301 error permanently moved ????我不明白为什么我会得到这个。我发送了音频/mepeg 的内容类型标头,但没有结果。

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 curl 文件:

<?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";
}
?>

【问题讨论】:

    标签: php jquery ajax curl


    【解决方案1】:

    服务器正在重定向您,但 cURL 的默认行为是忽略重定向。开启CURLOPT_FOLLOWLOCATION 选项以跟随 301 重定向。

    另外,您应该删除您的CURLOPT_HTTPHEADER。没有像type= 这样的标头,即使有,它也会应用于响应而不是请求。

    【讨论】:

    • 你能给我贴一个代码片段吗我不熟悉你在说什么现在它只是返回一个空页面没有 mp3 文件
    • @YoungnateDaGreat:将CURLOPT_FOLLOWLOCATION =&gt; true 添加到您的$options 数组中,并从同一数组中删除CURLOPT_HTTPHEADER 条目。这应该可以解决重定向错误。
    • 我得到一个空白页面你知道为什么吗?我的意思是它不是一个错误页面,但我需要知道将检索 mp3 吗?我想我必须将 content-type 放在那里,以便默认视频播放器呈现?
    猜你喜欢
    • 1970-01-01
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    • 2013-02-14
    相关资源
    最近更新 更多