用php實(shí)現(xiàn)百度網(wǎng)盤圖片直鏈的代碼分享
更新時間:2012年11月01日 22:05:58 作者:
華為網(wǎng)盤有個直鏈功能,不過需要錢買。我有百度網(wǎng)盤,不過百度的網(wǎng)盤外鏈不能在網(wǎng)頁里直接使用圖片 華為的直鏈功能可以做到。百度哪天也能有這功能就好了。
第一種代碼:代碼量較少
通過正則表達(dá)式獲取百度網(wǎng)盤的文件真實(shí)地址,來實(shí)現(xiàn)直鏈的效果
將下面的代碼保存為downbd.php
<?php
$canshu=$_SERVER["QUERY_STRING"];
if($canshu=="")
{
die("文件不存在");
}
else
{
$wangzhi="http://pan.baidu.com/share/link?".$canshu;
$file=file_get_contents($wangzhi);
$pattern='/a><a class="dbtn cancel singledbtn" href=(.*?)id="downFileButtom">/i';
preg_match_all($pattern,$file,$result);
$tempurl=implode("",$result[1]);
$fileurlt=str_replace("\"","",$tempurl);
$fileurl=str_replace("&","&",$fileurlt);
header("location:$fileurl");
}
?>
調(diào)用方法:
http://***/downbd.php?shareid=00000&uk=00000
主要是?shareid=00000&uk=00000這樣的格式
第二種:
做了一個小功能,準(zhǔn)備放在博客里分享圖片。
看代碼吧!代碼存為bdp.php
<?php
require_once('snoopy.class.php');
//http://www.abc.com/bdp.php?shareid=29160&uk=2855065916
$url = 'http://pan.baidu.com/share/link?shareid=' . $_GET['shareid'] . '&uk=' . $_GET['uk'];
$snoopy = new Snoopy();
$snoopy -> read_timeout = 0;
$snoopy -> fetch($url);
$n = $snoopy -> results;
$regex = '/(_.src=")(.+)(";)/';
$match = '';
preg_match($regex, $n, $match);
if(preg_match('/.gif/', $match[2])){
header("Content-type: image/gif");
imagegif(imagecreatefromgif($match[2]));
}elseif(preg_match('/.jpg/', $match[2])){
header("Content-type: image/jpeg");
imagejpeg(imagecreatefromjpeg($match[2]));
}elseif(preg_match('/.png/', $match[2])){
header("Content-type: image/png");
imagepng(imagecreatefrompng($match[2]));
}elseif(preg_match('/.wbmp/', $match[2])){
header("Content-type: image/vnd.wap.wbmp");
imagewbmp(imagecreatefromwbmp($match[2]));
}else{}
?>
snoopy.class.php是一個php類,用來模仿web瀏覽器的功能,它能完成獲取網(wǎng)頁內(nèi)容和發(fā)送表單的任務(wù)。這個文件可以百度一下。以上文件需要一個支持PHP的空間。百度網(wǎng)盤上傳圖片并發(fā)布分享,取得分享地址后的 shareid=29160&uk=2855065916 參數(shù)。
使用 http://你的域名/bdp.php?shareid=29160&uk=2855065916 得到圖片,這個地址可以放在CKEditor圖像地址中使用。其它編輯器應(yīng)該也可以。
網(wǎng)頁中直接 <img src='http://你的域名/bdp.php?shareid=29160&uk=2855065916' /> 使用
通過正則表達(dá)式獲取百度網(wǎng)盤的文件真實(shí)地址,來實(shí)現(xiàn)直鏈的效果
將下面的代碼保存為downbd.php
復(fù)制代碼 代碼如下:
<?php
$canshu=$_SERVER["QUERY_STRING"];
if($canshu=="")
{
die("文件不存在");
}
else
{
$wangzhi="http://pan.baidu.com/share/link?".$canshu;
$file=file_get_contents($wangzhi);
$pattern='/a><a class="dbtn cancel singledbtn" href=(.*?)id="downFileButtom">/i';
preg_match_all($pattern,$file,$result);
$tempurl=implode("",$result[1]);
$fileurlt=str_replace("\"","",$tempurl);
$fileurl=str_replace("&","&",$fileurlt);
header("location:$fileurl");
}
?>
調(diào)用方法:
http://***/downbd.php?shareid=00000&uk=00000
主要是?shareid=00000&uk=00000這樣的格式
第二種:
做了一個小功能,準(zhǔn)備放在博客里分享圖片。
看代碼吧!代碼存為bdp.php
復(fù)制代碼 代碼如下:
<?php
require_once('snoopy.class.php');
//http://www.abc.com/bdp.php?shareid=29160&uk=2855065916
$url = 'http://pan.baidu.com/share/link?shareid=' . $_GET['shareid'] . '&uk=' . $_GET['uk'];
$snoopy = new Snoopy();
$snoopy -> read_timeout = 0;
$snoopy -> fetch($url);
$n = $snoopy -> results;
$regex = '/(_.src=")(.+)(";)/';
$match = '';
preg_match($regex, $n, $match);
if(preg_match('/.gif/', $match[2])){
header("Content-type: image/gif");
imagegif(imagecreatefromgif($match[2]));
}elseif(preg_match('/.jpg/', $match[2])){
header("Content-type: image/jpeg");
imagejpeg(imagecreatefromjpeg($match[2]));
}elseif(preg_match('/.png/', $match[2])){
header("Content-type: image/png");
imagepng(imagecreatefrompng($match[2]));
}elseif(preg_match('/.wbmp/', $match[2])){
header("Content-type: image/vnd.wap.wbmp");
imagewbmp(imagecreatefromwbmp($match[2]));
}else{}
?>
snoopy.class.php是一個php類,用來模仿web瀏覽器的功能,它能完成獲取網(wǎng)頁內(nèi)容和發(fā)送表單的任務(wù)。這個文件可以百度一下。以上文件需要一個支持PHP的空間。百度網(wǎng)盤上傳圖片并發(fā)布分享,取得分享地址后的 shareid=29160&uk=2855065916 參數(shù)。
使用 http://你的域名/bdp.php?shareid=29160&uk=2855065916 得到圖片,這個地址可以放在CKEditor圖像地址中使用。其它編輯器應(yīng)該也可以。
網(wǎng)頁中直接 <img src='http://你的域名/bdp.php?shareid=29160&uk=2855065916' /> 使用
相關(guān)文章
CodeIgniter實(shí)現(xiàn)更改view文件夾路徑的方法
這篇文章主要介紹了CodeIgniter實(shí)現(xiàn)更改view文件夾路徑的方法,需要的朋友可以參考下2014-07-07分享六個比較好用的php數(shù)組Array函數(shù)
這篇文章給大家分享六個比較好用的php數(shù)組Array函數(shù),非常不錯,具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-07-07實(shí)例介紹PHP中zip_open()函數(shù)用法
在本篇內(nèi)容里小編給大家分享了關(guān)于PHP中zip_open()函數(shù)用法的相關(guān)知識點(diǎn),有需要的朋友們跟著學(xué)習(xí)下。2019-02-02淺析PHP反序列化中過濾函數(shù)使用不當(dāng)導(dǎo)致的對象注入問題
這篇文章主要介紹了PHP反序列化中過濾函數(shù)使用不當(dāng)導(dǎo)致的對象注入問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02thinkPHP5框架實(shí)現(xiàn)基于ajax的分頁功能示例
這篇文章主要介紹了thinkPHP5框架實(shí)現(xiàn)基于ajax的分頁功能,結(jié)合實(shí)例形式分析了thinkPHP5框架上進(jìn)行ajax分頁操作的具體步驟、實(shí)現(xiàn)代碼與相關(guān)操作方法,需要的朋友可以參考下2018-06-06