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

/**

* @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;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/537933.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信支付-服务端-bug排查记录

微信支付服务端需要对微信官方的统一下单接口发送请求获取prepayId作为app端调用支付的凭证,如果返回签名错误,首先排查代码层面的错误。 方法:使用微信官方的签名算法检验。 地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.…

.Net Core+mySqlSugar的一些稍复杂操作

介绍一些我尝试的mysqlSugar的数据库操作 修改密码 var status db.Update<Users>(new { password user.password }, it > it.username user.username); 更新数据&#xff08;防止空值一起更新&#xff09; 首先封装一个函数&#xff08;判断是否为空或者数值为0&a…

nginx一个server多个servername

nginx server_name 多个的话&#xff0c;空格隔开就行

php根据汉字首字母分组,利用PHP获取汉字首字母并且分组排序详解

前言本文主要给大家介绍了关于PHP获取汉字首字母并分组排序的相关内容&#xff0c;因经常我们在做项目的时候&#xff0c;会有按首字母排序的需求 比如&#xff1a; 美团的城市选择 http://www.meituan.com/index/changecity/initiative app中按字母搜索正题网上找了各种&#…

[算法总结] 13 道题搞定 BAT 面试——字符串

本文首发于我的个人博客&#xff1a;尾尾部落 1. KMP 算法 谈到字符串问题&#xff0c;不得不提的就是 KMP 算法&#xff0c;它是用来解决字符串查找的问题&#xff0c;可以在一个字符串&#xff08;S&#xff09;中查找一个子串&#xff08;W&#xff09;出现的位置。KMP 算法…

Sqlserver备份存储过程

查了网上找不到快速备份Sqlserver存储过程的方法&#xff0c;心里想&#xff0c;如果Sqlserver不自带这个功能&#xff0c;真是太low了。步骤1&#xff1a;打开存储过程文件夹步骤2&#xff1a;按 F7 键&#xff0c;打开“对象资源管理器详细信息”窗口步骤3&#xff1a;点击“…

仿拉钩app(一)---爬虫数据准备

工欲善其事必先利其器&#xff0c;准备做一个拉钩的app&#xff0c;但是没数据可怎么办&#xff0c;那就直接扒裤衩去爬吧 一般爬虫的思路为&#xff1a; 分析页面结构是否有接口模仿请求&#xff08;解决反爬的各种方式&#xff09;解析数据存储数据按照以上的思路&#xff0c…

小哼买书JAVA编写,04_小哼买书

现在来看一个具体的例子“小哼买书”(根据全国青少年信息学奥林匹克联赛 NOIP2006 普及组第一题改编),来实践一下 章所学的三种排序算法。Paste_Image.png小哼的学校要建立一个图书角,老师派小哼去找一些同学做调查,看看同学们都喜欢读哪些书。小哼让每个同学写出一个自己最想读…

[Err] 22007 - [SQL Server]从 nvarchar 数据类型到 datetime 数据类型的转换产生一个超出范围的值。

报错语句&#xff1a; cast(Replace(Replace(P.DeliverDate,.,-),/,-) as datetime)改为 cast(Replace(Replace(P.DeliverDate,.,-),/,-) as datetime2)使用 datetime2 代替 datetime

linux Postfix + dovecot + extmail + extman + mysql

配置环境&#xff1a;RHEL5.5 i386DNS MX[rootstation40 ~]# host -t MX tianyun.comtianyun.com mail is handled by 10 mail.tianyun.com.[rootstation40 ~]# [rootstation40 ~]# ping mail.tianyun.comPING mail.tianyun.com (192.168.0.2) 56(84) bytes of data.64 bytes f…

php 接口安全解决方案,php接口数据安全解决方案(一)

前言目的&#xff1a;1.实现前后端代码分离&#xff0c;分布式部署2.利用token替代session实现状态保持&#xff0c;token是有时效性的满足退出登录&#xff0c;token存入redis可以解决不同服务器之间session不同步的问题&#xff0c;满足分布式部署3.利用sign&#xff0c;前端…

Teamview连接Windows server问题

场景&#xff1a; 服务器在集团总部杭州&#xff0c;网管在集团宁波分公司&#xff0c;连接服务器通过内网远程桌面。过程&#xff1a; 网管给了tv的账号&#xff0c;密码。连接的时候一直连不上去。卡在“正在初始化连接参数”。后来网管不信&#xff0c;远程桌面了下&#xf…

nginx An attempt was made to access a socket in a way forbidden by its access permissions

在安装了 sqlserver2008 的win7 与 win2008 上启动 nginx&#xff0c;绑定80端口&#xff0c;报错&#xff1a; nginx An attempt was made to access a socket in a way forbidden by its access permissions查了百度&#xff0c;说修改注册表&#xff0c;但我的电脑上找不到文…

php codesniffer 代码规范,规范三:PHP_CodeSniffer 辅佐代码规范

>也可以参考此文&#xff1a;https://www.cnblogs.com/huangbx/p/php_codesniffer.html[TOC]我用的是wamp&#xff0c;环境是php7.0.23# (一)下载 pear打开http://pear.php.net/go-pear.phar&#xff0c;会显示代码&#xff0c;不用管他&#xff0c;直接copys复制到本地&…

php的cms是什么意思,phpcms是什么系统

什么是phpcms&#xff1f;Phpcms 是国内领先的网站内容管理系统&#xff0c;同时也是一个开源的PHP开发框架。Phpcms由内容模型、会员、问吧、专题、财务、订单、广告、邮件订阅、 短消息、自定义表单、全站搜索等20多个功能模块组成&#xff0c;内置新闻、图片、下载、信息、产…

【python】 time模块和datetime模块详解 【转】

一、time模块 time模块中时间表现的格式主要有三种&#xff1a; a、timestamp时间戳&#xff0c;时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 b、struct_time时间元组&#xff0c;共有九个元素组。 c、format time 格式化时间&#xff0c;已格式化的结构使时间更…

spring boot Exception in Thread “main” java.lang.classNoFoundException

在客户测试环境部署&#xff0c;通过打包成jar&#xff0c;使用命令 nohup java -jar /usr/local/tomcat/shirencai/ct-peixun-provider.jar –spring.profiles.activestage > /usr/local/tomcat/shirencai/ct-peixun-provider-temp.txt & 报错后来排查以为是内存不够。…

php源码自动识别文本中的链接,自动加载识别文件Auto.php

用于本应用的控制器自动加载类设置&#xff0c;用法如同\CodeIgniter\Config\AutoloadConfig自动加载识别文件:dayrui/App/应用目录/Config/Auto.php语法格式&#xff1a;<?php // 自动加载识别文件return [/*** 命名空间映射关系*/psr4 > [],/*** 类名映射关系*/classm…

如何识别“答非所问”?使用gensim进行文本相似度计算

在文本处理中&#xff0c;比如商品评论挖掘&#xff0c;有时需要了解每个评论分别和商品的描述之间的相似度&#xff0c;以此衡量评论的客观性。 评论和商品描述的相似度越高&#xff0c;说明评论的用语比较官方&#xff0c;不带太多感情色彩&#xff0c;比较注重描述商品的属性…

防抓包重放php,超简单最基本的WEB抓包改包重放的方法

【注意&#xff1a;此文章为博主原创文章&#xff01;转载需注意&#xff0c;请带原文链接&#xff0c;至少也要是txt格式&#xff01;】很多很多刚刚接触的同事问我如何抓包&#xff0c;如果讲用工具可能还涉及什么装证书&#xff0c;熟悉使用工具等等&#xff0c;特别繁琐&am…