用php实现百度网盘图片直链的代码分享


Posted in PHP onNovember 01, 2012

第一种代码:代码量较少
通过正则表达式获取百度网盘的文件真实地址,来实现直链的效果

将下面的代码保存为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"); 
} 
?>

调用方法:

http://***/downbd.php?shareid=00000&uk=00000
主要是?shareid=00000&uk=00000这样的格式

第二种:

做了一个小功能,准备放在博客里分享图片。

看代码吧!代码存为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浏览器的功能,它能完成获取网页内容和发送表单的任务。这个文件可以百度一下。以上文件需要一个支持PHP的空间。百度网盘上传图片并发布分享,取得分享地址后的 shareid=29160&uk=2855065916 参数。
使用 http://你的域名/bdp.php?shareid=29160&uk=2855065916 得到图片,这个地址可以放在CKEditor图像地址中使用。其它编辑器应该也可以。
网页中直接 <img src='http://你的域名/bdp.php?shareid=29160&uk=2855065916' /> 使用
PHP 相关文章推荐
使用PHP获取网络文件的实现代码
Jan 01 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
Nov 01 PHP
php记录代码执行时间(实现代码)
Jul 05 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
Apr 23 PHP
php+mysqli使用面向对象方式查询数据库实例
Jan 29 PHP
THINKPHP支持YAML配置文件的设置方法
Mar 17 PHP
php二维码生成
Oct 19 PHP
WordPress中自定义后台管理界面配色方案的小技巧
Dec 29 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
Apr 15 PHP
php获取一定范围内取N个不重复的随机数
May 28 PHP
PHP微信H5支付开发实例
Jul 25 PHP
php微信公众号开发之音乐信息
Oct 20 PHP
php curl 伪造IP来源的实例代码
Nov 01 #PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
Nov 01 #PHP
php eval函数用法 PHP中eval()函数小技巧
Oct 31 #PHP
php eval函数用法总结
Oct 31 #PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
Oct 31 #PHP
php图片加中文水印实现代码分享
Oct 31 #PHP
php中防止恶意刷新页面的代码小结
Oct 31 #PHP
You might like
在WordPress中使用wp-cron插件来设置定时任务
2015/12/10 PHP
php for 循环使用的简单实例
2016/06/02 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
2016/11/01 PHP
php获取'/'传参的值简单方法
2017/07/13 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
jQuery.buildFragment使用方法及思路分析
2013/01/07 Javascript
原生js的弹出层且其内的窗口居中
2014/05/14 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
关于Iframe父页面与子页面之间的相互调用
2016/11/22 Javascript
Javascript中字符串和数字的操作方法整理
2017/01/22 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
浅谈angular4 ng-content 中隐藏的内容
2017/08/18 Javascript
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
Python使用MD5加密字符串示例
2014/08/22 Python
浅谈Python中chr、unichr、ord字符函数之间的对比
2016/06/16 Python
Django Admin 实现外键过滤的方法
2017/09/29 Python
Python使用matplotlib简单绘图示例
2018/02/01 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
python 字典中取值的两种方法小结
2018/08/02 Python
PyQT5 QTableView显示绑定数据的实例详解
2019/06/25 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
2019/07/01 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
2019/11/19 Python
keras模型可视化,层可视化及kernel可视化实例
2020/01/24 Python
python虚拟环境模块venv使用及示例
2020/03/04 Python
详解Python 中的容器 collections
2020/08/17 Python
计算机应用职专应届生求职信
2013/11/12 职场文书
学习十八届四中全会依法治国心得体会
2014/11/03 职场文书
单位考核鉴定意见
2015/06/05 职场文书
教您:房贷工资收入证明应该怎么写?
2019/08/19 职场文书
用javascript制作qq注册动态页面
2021/04/14 Javascript
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis