添加自动识别百度外链的文件名以及后缀
作者:matrix 被围观: 3,887 次 发布时间:2013-09-05 分类:兼容并蓄 | 6 条评论 »
以前的百度网盘外链不能自动识别文件名以及后缀,这次添加此功能。
这次就算是v0.3版本了
v0.3版本更新修改原来百度网盘转换链接的接口,增加接口中显示文件名以及后缀。技术很低,只有玩玩这种活。
接口地址:http://d.hhtjim.com/bapi.php
用法:http://d.hhtjim.com/bapi.php?url=网盘分享地址
例如:http://d.hhtjim.com/bapi.php?url=http://pan.baidu.com/share/link?shareid=2053194229&uk=3238236832
返回:https://www.hhtjim.com/bdwl/2053194229/3238236832/20130726170450.jpg
再来个外链测试:
http://pan.baidu.com/s/11huyZ
接口代码:
<?php
function get($str){
$data = array();
$parameter = explode('&',end(explode('?',$str)));
foreach($parameter as $val){
$tmp = explode('=',$val);
$data[$tmp[0]] = $tmp[1];
}
return $data;
}
$str = 'http://' .$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"];
$data = get($str);
$shareid = $data['shareid'];
$uk = $data['uk'];
if(isset($_GET['url'])){
$quurl = $_GET['url'];
$getturl = $quurl;
$str = $quurl;
$aa = explode('shareid=',$getturl);
$urlcode = $aa[1];
}
$quurlXX= $quurl.'&uk='.$uk;
$txesS=file_get_contents($quurlXX);
$txesS=htmlspecialchars($txesS);
$zhuaqian=strpos($txesS,');if(E.length){E.click(function(){disk.util.ViewShareUtils.resolveBTFile(');
$zhuahou=strpos($txesS,');});}disk.Context.requestFeature(disk.Context.FEATURE_STORAGE,{succ:function(){var ');
$xinzhi=substr($txesS,$zhuaqian+79,$zhuahou-$zhuaqian-85); //取适当的两个位置中间的值也就是文件名
$zz = 'http://www.hhtjim.com/bdwl/'.$urlcode.'/'.$uk.'/'.$xinzhi;
echo $zz;
?>
说明:28-34行就是后来修改添加的。
29行$zhuaqian,用strpos()函数抓取$txesS中 文件名前面的固定(只能说暂时的,没技术整的太复杂)字符串“);if(E.length){E.click(function(){disk.util.ViewShareUtils.resolveBTFile(”的位置。$zhuahou 同理。
31行$xinzhi,用substr()函数两个位置中间的字符串也就是文件名
笔记。substr函数
substr($txesS,$zhuaqian+79,$zhuahou-$zhuaqian-85);
$txesS:在哪检索字符串
$zhuaqian+79:需要检索的字符串位置
$zhuahou-$zhuaqian-85:截取字符串的长度
修改了接口文件就要用,暂时抛弃v0.2。v0.2是用的html文件,来自于itiyun.com童鞋。
他是使用js在客户端转换(所以点击按钮后没见刷新页面就是出来结果了)输入框的字符并替换,因为v0.3和v0.1要获取文件名称信息就需要在服务端处理,所以就要刷新页面才有结果出来,也就相对于v0.2慢了些。不过不影响。:)
v0.2界面:
v0.2下载:
http://www.400gb.com/file/29050479
http://pan.baidu.com/share/link?shareid=4028070221&uk=3238236832
v0.1界面:
v0.1下载:
http://www.400gb.com/file/29052284
http://pan.baidu.com/share/link?shareid=4182975812&uk=3238236832
由于v0.3增加了对文件名以及后缀的显示,自然咱的伪静态也要作相应的修改,添加:
RewriteRule ^bdwl/([0-9]+)/([0-9]+)/([\s\S]+)\.([a-zA-Z0-9]+)?$ /baidu.php?shareid=$1&uk=$2 [L]
说明:[\s\S]表示空白字符+非空白字符,也就是全部字符都可以
v0.3结合了v0.1的提交表单功能以及接口和v0.2的漂亮界面,在最后取消手动选择文件格式,并且自动获取文件名以及后缀,把v0.1的get表单获取改成post,地址栏也就没有了那一串串url。
v0.3界面还算拿得出手了,实用性来说还好吧。如果度娘把那一串串乱码似的js改了的话,读取文件信息就挂了。
v0.3留图:
我想起来了--那个人就是你-- 😯
没事。看我的转换小工具写好了。
http://link.hhtjim.com/ 😀
我看看,明后天我也整一个出来==之前写的码子一直放着--
越搞越复杂了!
代码写不来。 弄的人家的
[...] 添加自动识别百度外链的文件名以及后缀 中抓取页面标题的方式有点落后,这次稍微修改,使用关于正则匹配的函数。 [...]