四六级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]))));

打包格式如上,使用二维数组,第一维中放返回码及查询状态,第二维中放返回的各种信息等。若查询失败则第一维中放返回码以及查询状态,第二维为空。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值