百度网盘PHP解析(代理)

小配角 小配角
2014-01-25 22:29
1841 浏览
2 回复
支持的回个贴
A版本
存为UTF-8  

如baidu.php?167413/3608716092
<?php
error_reporting(0);
header("Content-type:text/xml;charset=utf-8");
parse_str($_SERVER[QUERY_STRING]);
if(!$shareid||!$uk){
     list($shareid,$uk)=explode(/,$_SERVER[QUERY_STRING]);
}

if($shareid&&$uk){
$url=http://pan.baidu.com/share/link?shareid=.$shareid.&uk=.$uk;
preg_match(|"dlink":"([^"]+)","|imsU,getStr($url),$dlink);
header("location:".stripslashes(stripslashes($dlink[1])));
}
function  getStr($url){
        for($i=0;$i<3;$i++){
                $s=file_get_contents($url);
                if($s){
                        return $s;
                        break;
                }
        }
die(未采集到网页内容);

}


?>
B版本: 
用法将代码存为 baidu.php  调用的方法 
baidu.php/百度字母id.mp3  

baidu.php/百度shareid/百度ukid.mp3
 
<?php

$bdquery = (DIRECTORY_SEPARATOR==)?$_SERVER[PATH_INFO]:$_SERVER[QUERY_STRING];
$bdquery = ltrim($bdquery, /); 
$bdquery = ltrim($bdquery,&);
$bdquery = reset(explode(&, $bdquery));
$bdquery = ltrim($bdquery, ?);
$bdquery = reset(explode(.,$bdquery));
define("MY_SHARE","http://pan.baidu.com/share/link?shareid=");


if (preg_match(|id/(\\d+)/uk/(\\d+)$|, $bdquery, $r)) {
        list ($shareid, $uk) = array (
                $r[1],
                $r[2]
        );
        $url = MY_SHARE."$shareid&uk;=$uk";

}
elseif (preg_match(/^(d{3,})[-|/|_](d{3,})[-|/|_](d{3,})$/, $bdquery, $r)) {
    list($shareid,$uk,$fid)=array($r[1],$r[2],$r[3]);
        $url = MY_SHARE."$shareid&uk;=$uk&fid;=$fid";

}elseif (preg_match(/^(d{3,})[-|/|_](d{3,})$/, $bdquery, $r)) {
    list($shareid,$uk)=array($r[1],$r[2]);
        $url = MY_SHARE."$shareid&uk;=$uk";

}

elseif (preg_match(/^(w+)$/, $bdquery)) {
        $url = http://pan.baidu.com/s/ . $bdquery;
}



elseif (preg_match(/^http:/, $bdquery)) {
        $url = $bdquery;
}
if($url){

        $str=fetch($url);
        $md5=match(/file_md5="(w+)"/imsU,$str);

        if(!$md5){
                die($url."分享文件不存在.");
        
        }
        
        if(@!$uk){
                $uk=match(/.share_uk="(\\d+)"/s,$str);
        }
        $shareid=match(/ViewShareUtils.fsId="(\\d+)"/,$str);
        $app_id=match(|"app_id":"(d+)",|s,$str);
        $fsid=$uk.-.$app_id.-.$shareid;

        $time=match(/share_timestamp="(\\d+)"/s,$str);
        $expires=$time+600;
        $file=http://cdn.baidupcs.com/file/.$md5.?xcode=1a81b0bbd448fc368d78cc336e28561a&fid;=.$fsid.&time;=.$time.&to=cb&fm=N,B,T,t&expires;=.$expires.&rt=sh&sh=1&wsiphost=ipdbm;
        header("location:$file");

}




function match($preg,$str){
        preg_match($preg,$str,$arr);
        return $arr[1];

}

function fetch($url,$head=false) {
                $ag=Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.84 Safari/537.22 BIDUPlayerBrowser/2.6.2.53 BIDUTN/31;
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, $url);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                $head and curl_setopt($ch, CURLOPT_HEADER, true);
                curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 6);
                curl_setopt($ch, CURLOPT_USERAGENT, $ag);
                $content = curl_exec($ch);
                curl_close($ch);
                return $content;
}

回复列表(2)

烟少
烟少
2015-01-21 21:06
方法在哪里
回复
烟少
烟少
2015-01-21 21:07
方法在哪里
回复