四六級php,詳解四六級查詢API+網頁

這個API是第三方API,第三方API的工作原理大都基于此,本文主要起一反三之作用,代碼的不處周之還望及時指出。

開發環境:WinServer2012 + php7.0 + Apache2.4.8

思路:向官方查詢界面傳遞參數,使用curl抓取結果網頁,分析網頁取出關鍵數據,將關鍵數據規則化后返回。

10d976bae890?from=timeline

基本思路

抓取網址:http://www.chsi.com.cn/cet/ 通過顯式傳參方式傳遞姓名,學號等信息。

關鍵代碼:

10d976bae890?from=timeline

curl會話

初始化一個curl會話,訪問請求的網址(保存在變量$_url中),獲取網頁源代碼后關閉會話,其中第三行代碼作用為偽造訪問來路,防止傳參失敗。

運行成功后$contents內容為網頁源代碼,若第四行代碼參數為FALSE則直接將網頁源碼抓取后顯示,TRUE為不顯示(此處不顯示,做數據分析用)。

使用正則表達式抓取數據,查詢成功時頁面會顯示相應學校,成績,個人信息等。查詢失敗時會顯示姓名錯誤或者考號長度有問題等,根據不同的關鍵字使用正則表達式抓取關鍵數據。

10d976bae890?from=timeline

正則表達式

preg_match_all使用方法:參數1:正則表達式,參數2:目標字符串,參數3:匹配結果。將contents變量中的匹配結果保存在type變量中。

每次匹配后檢測type變量值,以判斷查詢是否成功。以及決定各種狀態的返回代碼。

10d976bae890?from=timeline

錯誤碼返回示例

其余的錯誤碼返回方式如下:

10d976bae890?from=timeline

參數檢測的錯誤碼返回

錯誤信息處理,返回Json格式打包后的錯誤代碼以及錯誤信息(字符串數組為對象格式)

strip_tags($array); 去掉變量array中的HTML標簽,此處的作用為去掉正則表達式匹配后遺留下來的標簽等

trim($array); 去掉變量array兩邊的空白符

使用strip_tags去掉正則表達式匹配結果中的html標簽,然后用trim去掉結果兩邊的空格,最后將數組打包并轉化為對象,然后轉化為Json格式后輸出。

$arr_return=(object)array((object)array(0,"success"),(object)array(trim(strip_tags($type_1[0][0])),trim(strip_tags($type_1[0][1])),trim(strip_tags($type_1[0][2])),trim(strip_tags($type_1[0][4]))),(object)array(trim(strip_tags($type_2[0][1])),trim(strip_tags($type_2[0][2])),trim(strip_tags($type_2[0][3]))));

打包格式如上,使用二維數組,第一維中放返回碼及查詢狀態,第二維中放返回的各種信息等。若查詢失敗則第一維中放返回碼以及查詢狀態,第二維為空。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257476.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257476.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257476.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

終于把joomla 的 protostar 模版的菜單,從垂直改到水平了

protostar-applying-menu-class-suffixes-horizontal-vs-vertical-menus.html joomla 3.7.5 附帶的這個template , 菜單丑的要死。 估計是新改的。 看網上的其他站點都沒這毛病。 最后終于找到解決方法了。“ nav-pills“ 前面是有空格的 To make the menu horizonal, you can …

Find non-overlap jobs with max cost

Given a set of n jobs with [start time, end time, cost] find a subset so that no 2 jobs overlap and the cost is maximum.Job: (start_time, end_time] --- cost 如果只是求maxCost, 一維就可以做。 但是如果要知道有選了哪些job,則需要存成二維。…

php 跨區域,PHP跨時區的功能實現

現在有一個跨時區的應用,不同時區登錄的用戶需要看到自己時區的時間,同時也要能夠進行時區的切換。我的思路是,系統中所有存儲的時間都是GMT(UTC)時間,用戶登錄時,根據用戶所在的時區進行對應的顯示。首先了解一下PHP中…

js實現向上滾動效果

源碼&#xff1a;<style type"text/css"> #up_zzjs{border:1px solid #ccc;width:170px;height:182px;line-height:20px;overflow:hidden;} #up_zzjs #up_li{list-style-type:none;margin:0;padding:0;margin-left:6px;} /*系統支持ie8就選line-heigh…

利用數據的商業智能分析工具

商業智能可以定義為獲取和轉換原始數據的技術和工具&#xff0c;這些信息可以為業務運營提供有意義的好處。 商業智能的發展 商業智能&#xff08;BI&#xff09;是一個可追溯到19世紀中期的術語&#xff0c;基本上是一樣的定義。但作為結構化數據的自動化處理的參考&#xff0…

管理之道(三) - 不要吝惜贊美

多一句贊美 人們相互希望得越多&#xff0c;想要給予對方的越多……就必定越親密。   幾天前&#xff0c;我和一位朋友在紐約搭計程車&#xff0c;下車時&#xff0c;朋友對司機說&#xff1a;“謝謝&#xff0c;搭你的車十分舒適。”這司機聽了愣了一愣&#xff0c;然后說&a…

優酷視頻整段代理php,thinkphp仿優酷帶數據源碼|php仿優酷視頻源碼帶后臺功能強大...

本項目是仿優酷官網&#xff0c;優酷官網是一個集多種知識面為一體的網站&#xff0c;能全面的鍛煉我們的技能,所以我們決定仿優酷網。本項目后臺主要實現了&#xff1a;用戶管理、分類管理、視頻管理、評論管理、權限管理、輪播管理、網站配置和廣告管理以及登錄退出等模塊。前…

Centos7安裝Oracle JDK

查看Linux是否自帶的JDK&#xff0c;如有openJDK&#xff0c;則卸載1 java -version 1 rpm -qa | grep -E ^open[jre|jdk]|j[re|dk] 卸載openjdk1 su root 2 3 yum -y remove java java-1.7.0-openjdk 下載oracle jdk1 wget --no-cookies --header "Cookie: oraclelice…

前端每周清單第 30 期:WebVR 指南,Vue 代碼分割范式,理想的 React 架構特性

前端每周清單專注前端領域內容&#xff0c;以對外文資料的搜集為主&#xff0c;幫助開發者了解一周前端熱點&#xff1b;分為新聞熱點、開發教程、工程實踐、深度閱讀、開源項目、巔峰人生等欄目。歡迎關注【前端之巔】微信公眾號&#xff08;ID&#xff1a;frontshow&#xff…

Oracle(3)——Oracle圖形界面工具創建數據庫

具體操作步驟詳情&#xff1a; 1.圖形界面工具首界面 Database Configuration Assistant 點擊下一步 2.默認 點擊下一步 3.默認 點擊下一步 4.設置全局數據庫名、SID 為新建數據庫起一個“全局數據庫名”&#xff0c;比如這里對數據庫名和SID&#xff1a;FKXT 點擊下一步 5.設置…

rsa 加密 js php,security.js+RSA做出加密功能

這次給大家帶來security.jsRSA做出加密功能&#xff0c;的注意事項有哪些&#xff0c;下面就是實戰案例&#xff0c;一起來看一下。在項目中遇到要對用戶輸入的密碼進行RSA加密的需求&#xff0c;總結一下實現過程&#xff1a;JS rsa加密加密//引入security.js文件var btn doc…

多線程面試題系列(12):多線程同步內功心法——PV操作上

上面的文章講解了在Windows系統下實現多線程同步互斥的方法&#xff0c;為了提高在實際問題中分析和思考多個線程之間同步互斥問題的能力&#xff0c;接下來將講解PV操作&#xff0c;這也是操作系統中的重點和難點。本文將會先簡要介紹下PV操作的來源和基本使用方法&#xff0c…

兩離散序列卷積matlab,離散序列卷積和(用matlab實現)

數字信號處理實驗報告實驗一離散時間序列卷積和MATLAB實現(一)實驗目的&#xff1a;學會用MATLAB對信號與系統分析的方法&#xff0c;理解離散序列卷積和的計算對進行離散信號與系統分析的重要性。(二)實驗原理&#xff1a;1、離散時間序列f1(k)和f2(k)的卷積和定義&#xff1a…

linux命令學習-4-lsof

lsof&#xff08;list open files&#xff09;是一個列出當前系統打開文件的工具。在linux環境下&#xff0c;任何事物都以文件的形式存在&#xff0c;通過文件不僅僅可以訪問常規數據&#xff0c;還可以訪問網絡連接和硬件。 在終端下輸入lsof即可顯示系統打開的文件&#xff…

IOS6+ 下,使用position:sticky實現粘性布局

回顧一下 開通博客之后&#xff0c;潦草的寫了幾篇&#xff0c;之后由于沒時間&#xff0c;加上文筆不好等等&#xff08;好吧&#xff0c;都是借口&#xff09;&#xff0c;基本上就沒怎么寫過了&#xff0c;其實平時也做了一些記錄&#xff0c;但就是犯懶&#xff0c;沒有去整…

SQL游標使用方法SQL游標使用方法(轉)

1. 為何使用游標&#xff1a;    使用游標(cursor)的一個主要的原因就是把集合操作轉換成單個記錄處理方式。用SQL語言從數據庫中檢索數據后&#xff0c;結果放在內存的一塊區域中&#xff0c;且結果往往是一個含有多個記錄的集合。游標機制允許用戶在SQL server內逐行地訪問…

matlab銑削,基于MATLAB的微細銑削力分析

2010年 12月第 38卷 第 23期 機床與液壓 MACH INE TOOL & HYDRAUL ICS Dec2010Vol38 No123DO I: 10. 3969 / jissn11001 - 38812010231037 收稿日期 : 2009 - 11 - 05 作者簡介 : 張衛鋒 (1978—) , 男 , 講師 , 研究領域為機器人技術、仿真技術、特種加工。電話: 13656487…

軟件測試作業——三

作業見《軟件測試基礎》中文版49頁第7題。英文版63頁 a) b) 令MAXPRIMES 4&#xff0c;t1不能檢查出錯誤&#xff0c;t2發生數組越界&#xff0c;使得t2比t1更容易發現。 c)t3(n1) d)節點覆蓋&#xff1a;TR{1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0…

細說Java主流日志工具庫

目錄 概述??java.util.logging (JUL)??Log4j??Logback??Log4j vs Logback??common-logging??slf4j??common-logging vs slf4j??總結實施日志解決方案??引入jar包????slf4j直接綁定日志組件????slf4j兼容非slf4j日志組件????spring 集成 slf4j??…

SQL2008使用json.net實現XML與JSON互轉

借助CLR&#xff0c;首先實現字符串的互轉&#xff0c;然后使用存儲過程實現JSON2table public class JsonFunction { /// <summary> /// XML轉JSON /// </summary> /// <param name"xml"></param> /// <returns></returns> ///…