/**

* @package Lanzou

* @author Filmy

* @version 1.2.1

* @link https://mlooc.cn

*/

header('Access-Control-Allow-Origin:*');

header('Content-Type:application/json; charset=utf-8');

$url = isset($_GET['url']) ? $_GET['url'] : "";

$pwd = isset($_GET['pwd']) ? $_GET['pwd'] : "";

$type = isset($_GET['type']) ? $_GET['type'] : "";

if (empty($url)) {

die(

json_encode(

array(

'code' => 400,

'msg' => '请输入URL'

)

, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)

);

}

$softInfo = MloocCurlGet($url);

if (strstr($softInfo, "文件取消分享了") != false) {

die(

json_encode(

array(

'code' => 400,

'msg' => '文件取消分享了'

)

, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)

);

}

preg_match('~class="b">(.*?)~', $softInfo, $softName);

if(!isset($softName[1])){

preg_match('~

(.*?)

~', $softInfo, $softName);

}

if (strstr($softInfo, "手机Safari可在线安装") != false) {

if(strstr($softInfo, "n_file_infos") != false){

$ipaInfo = MloocCurlGet($url, 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1');

preg_match('~href="(.*?)" target="_blank" class="appa"~', $ipaInfo, $ipaDownUrl);

}else{

preg_match('~com/(\w+)~', $url, $lanzouId);

if (!isset($lanzouId[1])) {

die(

json_encode(

array(

'code' => 400,

'msg' => '解析失败,获取不到文件ID'

)

, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)

);

}

$lanzouId = $lanzouId[1];

$ipaInfo = MloocCurlGet("https://www.lanzous.com/tp/" . $lanzouId, 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1');

preg_match('~href="(.*?)" id="plist"~', $ipaInfo, $ipaDownUrl);

}

$ipaDownUrl = isset($ipaDownUrl[1]) ? $ipaDownUrl[1] : "";

if ($type != "down") {

die(

json_encode(

array(

'code' => 200,

'msg' => '',

'name' => isset($softName[1]) ? $softName[1] : "",

'downUrl' => $ipaDownUrl

)

, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)

);

} else {

header("Location:$ipaDownUrl");

die;

}

}

preg_match("~iframe.*?name=\"[\s\S]*?\"\ssrc=\"\/(.*?)\"~", $softInfo, $link);

$ifurl = "https://www.lanzous.com/" . $link[1];

$softInfo = MloocCurlGet($ifurl);

if (empty($pwd) && strstr($softInfo, "输入密码") != false) {

die(

json_encode(

array(

'code' => 400,

'msg' => '请输入分享密码'

)

, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)

);

}

preg_match("~=\s'(.*?)';[\S\s]*?=\s'(.*?)'[\S\s]*?=\s'(.*?)'[\S\s]*?=\s'(.*?)'~", $softInfo, $segment);

$post_data = array(

"action" => $segment[1],

"file_id" => $segment[2],

"t" => $segment[3],

"k" => $segment[4],

"c" => "",

"p" => $pwd,

);

$softInfo = MloocCurlPost($post_data, "https://www.lanzous.com/ajaxm.php", $ifurl);

$softInfo = json_decode($softInfo, true);

if ($softInfo['zt'] != 1) {

die(

json_encode(

array(

'code' => 400,

'msg' => $softInfo['inf']

)

, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)

);

}

$downUrl = $softInfo['dom'] . '/file/' . $softInfo['url'];

if ($type != "down") {

die(

json_encode(

array(

'code' => 200,

'msg' => '',

'name' => isset($softName[1]) ? $softName[1] : "",

'downUrl' => $downUrl

)

, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)

);

} else {

header("Location:$downUrl");

die;

}

function MloocCurlGet($url, $UserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36')

{

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);

if ($UserAgent != "") {

curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);

}

#关闭SSL

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

#返回数据不直接显示

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec($curl);

curl_close($curl);

return $response;

}

function MloocCurlPost($post_data, $url, $ifurl = '', $UserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36')

{

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);

curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);

if ($ifurl != '') {

curl_setopt($curl, CURLOPT_REFERER, $ifurl);

}

#关闭SSL

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

#返回数据不直接显示

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($curl, CURLOPT_POST, 1);

curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);

$response = curl_exec($curl);

curl_close($curl);

return $response;

}

php获取蓝凑云文件列表,php调用蓝奏云下载接口相关推荐

  1. C/C++ 获取目录下的文件列表信息

    在C/C++编程时,需要获取目录下面的文件列表信息. 1.数据结构 struct dirent { long d_ino;                 /* inode number 索引节点号 ...

  2. java获取文件目录列表_获取目录中的文件列表

    我正在开发一个C项目,我需要获取目录中的文件列表 . 我正在使用dirent.h但是在使用它时遇到了一些问题,我正在Linux下构建程序 . 当我尝试构建程序时,我收到以下错误 myClass:err ...

  3. 关于BaiduPCS-Go不能用问题解决,报错【获取目录下的文件列表 遇到错误, 远端服务器返回错误】

           BaiduPCS-Go不能使用报错:获取目录下的文件列表 遇到错误, 远端服务器返回错误, 代码: 4, 消息: No permissionto do this operation, 路 ...

  4. php获取蓝凑云文件列表,PHP获取蓝奏云直链方法

    PHP获取蓝奏云直链方法 admin • 2018 年 09 月 01 日 [title]获取蓝奏云直链[/title] 国内网盘目前应该大多不支持直链,百度网盘一家独大但是限速,使用api获得的外联 ...

  5. php获取蓝凑云文件列表,【PHP】利用蓝奏网盘做个人小文件网盘和获取真实下载地址...

    本帖最后由 kuhoo 于 2019-12-17 00:08 编辑 之前已经有人分享过蓝奏云盘直链获取教程和源码,但是或已经失效,或只能用于电脑. 按照之前网友分享的思路,对蓝奏网盘的手机端页面进行分 ...

  6. php获取蓝凑云文件列表,自制蓝奏云网盘解析接口全解

    网盘里蓝奏云算是网盘中的战斗机OWO,下载速度阿,都是很快的,也是无限容量的,最多限制100m文件,跟百度云比简直就是良心! 不过好多人可能要求比较高,想要直接直链下载文件,那我们就直接切入主题呗~0 ...

  7. 如何使用C或C ++获取目录中的文件列表?

    如何从C或C ++代码内部确定目录中的文件列表? 我不允许执行ls命令并从程序中解析结果. #1楼 GNU手册FTW http://www.gnu.org/software/libc/manual/h ...

  8. Python 获取目录下的文件列表,并自然排序

    在实际的算法与程序开发中,经常需要面对的场景就是对同一目录内的文件进行批量操作.并且很多时候目录中的文件明明是有规律的,同时希望程序在进行处理时也是按照一定的顺序进行. 方法 1 >>&g ...

  9. 阿里云文件存储和自我管理的云解决方案的TCO比较

    阿里云文件存储是一种完全托管的文件存储服务. 很多客户也会使用第三方软件搭建自我管理的云解决方案. 本文重点从总体拥有成本(TCO)的角度,对这两种文件存储服务进行比较. 使用阿里云文件存储服务的总拥 ...

最新文章

  1. R语言使用randomForest包构建随机森林模型(Random forests)、使用importance函数查看特征重要度、使用table函数计算混淆矩阵评估分类模型性能、包外错误估计OOB
  2. glog 报错解决: /bin/bash: aclocal-1.14: command not found
  3. Enterprise Library之错误处理部分
  4. 第十七届全国大学生完全车模组竞速赛方案 - 草案
  5. 完美解决Flask-Migrate使用SQLite生成自动迁移脚本的Bug
  6. Senparc.Weixin.MP SDK 微信公众平台开发教程(十八):Web代理功能
  7. MySQL数据库备份工具mysqldump的使用(转)
  8. SilverLight4.0数据验证IDataErrorInfo, INotifyDataErrorInfo[转]
  9. C语言代码规范(十)花里胡哨代码鉴赏
  10. where、having、group by、order by、count的使用注意
  11. 厦门高桔科技有限公司
  12. 每日英语:Chinese Show Global Real-Estate Appetite
  13. EXCEL数据有效性—单元格筛选的改进
  14. windows powershell快捷键
  15. C语言拍皮球双重循环,山东理工大学ACM平台题答案关于C语言 1184 C语言实验——拍皮球...
  16. 人工智能实战第六次作业_张绍恺
  17. Python 给图片加文字或logo水印(附代码) | Python工具
  18. P5385 [Cnoi2019]须臾幻境 LCT+主席树 维护区间联通块个数
  19. Ureport2 ---报表设计(2)--报表计算模型
  20. 【WPS表格】创建表格,汇总行

热门文章

  1. C语言(CED)编写程序,求sum=1*1*1+2*2*2+3*3*3+4*4*4+5*5*5+····+n*n*n
  2. cglib动态代理导致注解丢失问题及如何修改注解允许被继承
  3. css提取页面元素唯一性_下面这个函数,能够获取一个元素的任意 CSS 属性值。...
  4. java activity模式_Activity的启动模式
  5. linux好用的编译器,推荐几款Linux下比Notepad++好的编辑器软件
  6. word把选择答案弄到题目里_老师们看过来,如何快速整理试题答案
  7. linux内核调度 0号进程,Linux内核源代码情景分析---第四章 进程与进程调度
  8. mysql安装、导入数据脚本
  9. MySQL:查询条件
  10. JDK源码解析之 Java.lang.Float