用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作为Shell脚本语言使用
Oct 09 PHP
php设计模式 State (状态模式)
Jun 26 PHP
修改PHP的memory_limit限制的方法分享
Feb 21 PHP
MySQL时间字段究竟使用INT还是DateTime的说明
Feb 27 PHP
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
Jun 27 PHP
php语言流程控制中的主动与被动
Nov 05 PHP
php如何解决无法上传大于8M的文件问题
Mar 10 PHP
PHP共享内存用法实例分析
Feb 12 PHP
PHP浮点比较大小的方法
Feb 14 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
Dec 24 PHP
Docker搭建自己的PHP开发环境
Feb 24 PHP
基于ThinkPHP删除目录及目录文件函数
Oct 28 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
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
php不用正则验证真假身份证
2013/11/06 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
2018/06/05 PHP
javascript 函数速查表
2010/02/07 Javascript
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
点击隐藏页面左栏或右栏实现js代码
2013/04/01 Javascript
JS打开新窗口的2种方式
2013/04/18 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
2014/04/04 Javascript
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
2017/06/09 jQuery
微信小程序实现用table显示数据库反馈的多条数据功能示例
2019/05/07 Javascript
使用Vue-cli3.0创建的项目 如何发布npm包
2019/10/10 Javascript
NodeJS实现一个聊天室功能
2019/11/25 NodeJs
详解JS预解析原理
2020/06/16 Javascript
vue中destroyed方法的使用说明
2020/07/21 Javascript
react-intl实现React国际化多语言的方法
2020/09/27 Javascript
[36:45]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python中使用装饰器和元编程实现结构体类实例
2015/01/28 Python
python系列 文件操作的代码
2019/10/06 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
关于解决iframe标签嵌套问题的解决方法
2020/03/04 HTML / CSS
美国高端牛仔品牌:Silver Jeans
2019/12/12 全球购物
医生进修自我鉴定
2014/01/19 职场文书
英语自我评价范文
2014/01/24 职场文书
新浪微博实习心得体会
2014/01/27 职场文书
社团招新策划书
2014/02/04 职场文书
网络工程师自荐书范文
2014/04/01 职场文书
《春笋》教学反思
2014/04/15 职场文书
公司采购主管岗位职责
2014/06/17 职场文书
不服从上级领导安排的检讨书
2014/09/14 职场文书
公司领导班子群众路线四风问题对照检查材料
2014/10/02 职场文书
幼儿园中班个人总结
2015/02/28 职场文书
js实现自动锁屏功能
2021/06/02 Javascript
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL
java中如何截取字符串最后一位
2022/07/07 Java/Android