zl程序教程

您现在的位置是:首页 >  其他

当前栏目

添加自动识别百度外链的文件名以及后缀

百度 添加 以及 文件名 后缀 外链 自动识别
2023-06-13 09:11:05 时间

添加自动识别百度外链的文件名以及后缀

作者:matrix 被围观: 3,221 次 发布时间:2013-09-05 分类:兼容并蓄 | 6 条评论 »

这是一个创建于 3282 天前的主题,其中的信息可能已经有所发展或是发生改变。

以前的百度网盘外链不能自动识别文件名以及后缀,这次添加此功能。

这次就算是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(”的位置。

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留图: