百度网盘外链转换

文章目录

之前也看到好多人都弄过这个东西了,因为一直没这方面的需求,所以也没花功夫研究。前些天搬vps的时候用到了百度网盘,所以就看了下。

该程序包括两个部分:链接转换及源地址获取

链接转换

这一步的功能其实就是将百度网盘的链接转换成后缀为.mp3、.avi等等格式的链接,方便直接引用。在本文中:

1
http://pan.baidu.com/s/1l9BDc

即被转化为

1
http://share.tennfy.com/bpzl.php/1l9BDc.mp3

为了使界面友好一点,需要加点css样式上去,具体效果如图:

bpzl

源地址获取

这一步的功能是将直链地址解构造成网盘地址然后请求该链接的页面,获取得到源地址。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
//最后修改时间:2013-10-28
//构造百度网盘分享网址
$uri = $_SERVER["REQUEST_URI"];
preg_match('|\/(\d+)\/(\d+)\.|', $uri, $res);
if ($res) {
    list($shareid, $uk) = array_slice($res, 1, 2);
    $url = "http://pan.baidu.com/share/link?shareid=$shareid&uk=$uk";
} else {
    preg_match('|\/.+\/(\w+)\.|', $uri, $res);
    $url = "http://pan.baidu.com/s/".$res[1];
}
 
//匹配源码里面的音乐地址并跳转
/* ini_set("user_agent", "BlackBerry/3.6.0");
$src = file_get_contents($url); */
$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL,$url);
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'BlackBerry/3.6.0');
$src = curl_exec($curl_handle);
curl_close($curl_handle);
 
preg_match('|http://.+file.+sign[^"]+|', $src, $res);
$songurl = html_entity_decode($res[0]);
header("location:$songurl");
?>

本方法采用curl方式,需要空间支持curl方式,如果不支持curl,查看下是否支持file_get_contents函数,支持的话可以采用如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
//最后修改时间:2013-10-28
//构造百度网盘分享网址
$uri = $_SERVER["REQUEST_URI"];
preg_match('|\/(\d+)\/(\d+)\.|', $uri, $res);
if ($res) {
    list($shareid, $uk) = array_slice($res, 1, 2);
    $url = "http://pan.baidu.com/share/link?shareid=$shareid&uk=$uk";
} else {
    preg_match('|\/.+\/(\w+)\.|', $uri, $res);
    $url = "http://pan.baidu.com/s/".$res[1];
}
 
//匹配源码里面的音乐地址并跳转
 ini_set("user_agent", "BlackBerry/3.6.0");
$src = file_get_contents($url); 
/*$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL,$url);
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'BlackBerry/3.6.0');
$src = curl_exec($curl_handle);
curl_close($curl_handle);
*/
preg_match('|http://.+file.+sign[^"]+|', $src, $res);
$songurl = html_entity_decode($res[0]);
header("location:$songurl");
?>

反正就是换着用,哪个好用用哪个。

小结

如果你只是想使用下载软件的话,只要后面一段代码就好,不需要再构造直链,只需用blackberry的user_agent来请求源地址就可以了。

我制作了演示网址:http://share.tennfy.com

文件下载地址:http://pan.baidu.com/s/1bndFmjl

参考文章:
网盘外链工具的整套源码下载
百度网盘音乐外链源码



本文出自 TENNFY WU,转载时请注明出处及相应链接。

本文永久链接: http://www.tennfy.com/743.html

下一篇文章:

上一篇文章:

18人参与了讨论

  1. xilouqingzhu 说:

    擦,厉害呀。我对着php查资料看半天,正则都还有些没弄懂

  2. 免费部落 说:

    您备案不用关站的吗?

  3. 垃圾站 说:

    这个不错,有时间转了,只是好奇你的博客竟然搬家到了东陆……

  4. 免费部落 说:

    您是不是已经搬到新空间上来了?

  5. Faris 说:

    牛~学习了~~~~网站备案好了么?

  6. 放牛娃 说:

    博主可以加个微云解析和威盘解析进去吗,还有再弄个解析在线播放。

  7. 垃圾站 说:

    百度似乎报废了……

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

7 + 4 = ?


您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

返回顶部