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.pswp.cn/news/537933.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/537933.shtml
英文地址,請注明出處:http://en.pswp.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…