php用get方法批量查询考试成绩

整理电脑文件,偶然翻到自己用好奇其他人的普通话成绩,写的一个小脚本。

大体思路:

1初始化学号序列

2用php提交get请求抓取返回页面,正则提取成绩

3直接输出结果到html

 1 <html>
 2 <!--
 3 时间:2:03 2014/5/24 星期六
 4 作者:622
 5 名称:普通话考试批量说明
 6 说明:此程序仅用于get方式单学号无验证码查询
 7 
 8 在Apache+PHP环境下,修改中文名字为英文即可运行
 9 
10 -->
11 <table  cellspacing="0">
12 <?php
13 set_time_limit(0);//设定一个程式所允许执行的秒数,它预设的限制时间是30秒
14 $num = 201100140001;//初始学号
15 while($num < 201100140190){ //终止学号
16     $handle = fopen("http://www.pjjs.sdu.edu.cn/yywz/submitquery.asp?studentname=".$num, "r"); 
17     $contents = stream_get_contents($handle); 
18     $pattern = '/<font\scolor=red\ssize=2>(.*?)<\/font>/xm';
19     if(preg_match_all($pattern,$contents,$matches)){
20     ?>
21         <tr>
22             <td><?=$matches[1][1]?></td>
23             <td><?=$matches[1][0]?></td>
24             <td><?=$matches[1][2]?></td>
25             <td><?=$matches[1][3]?></td>
26             <td><?=$matches[1][4]?></td>
27             <td><?=$matches[1][5]?></td>
28         </tr>
29     <?php
30     }
31     else{
32     echo "<tr>
33         <td>".$num."</td>
34         <td colspan=5>查无此人</td>
35     </tr>";
36     }
37     $num ++;
38 }
39 ?>
40 </table>
41 </html>