界面如下:
这个模拟是高仿真学校教务系统的,好处就是,可以快速登陆系统直接获取成绩。
避开了繁琐的查询步骤,和节约了查询的时间,极大的提高了用户的体验。
核心源代码如下:
login(); if ( false == $flag) exit('学号或密码错误!'); echo $get->getResults(); }class Index{ private $_cookie; //验证登录操作 public function login(){ $url = 'http://202.197.224.134:8083/jwgl/logincheck.jsp'; $post = 'identity=student&username='.$_REQUEST['xh'].'&password='.$_REQUEST['psw']; $stream = $this->_html($url, $post); //将$strean由gbk编码转换为utf-8编码 $stream = mb_convert_encoding($stream, 'utf-8', 'gbk'); $this->_cookie($stream); // 获取cookie $url = 'http://202.197.224.134:8083/jwgl/index1.jsp'; $html = $this->_html($url, $post.'&role=1'); return strpos($stream, '页面跳转') !== false; } //查询成绩的方法 public function getResults(){ $url= 'http://202.197.224.134:8083/jwgl/cj/cj1_cjLiebiao.jsp?xq=null&xkjc='.$_REQUEST['xkjc'].'&type=null&xkdl2=1&xh='.$_REQUEST['xh'].'&bh=null'; $stream = $this->_html($url); $stream = mb_convert_encoding($stream, 'utf-8', 'gbk'); //搜索 $stream中所有匹配 '/(.*?)<\/td>/is' 给定正则表达式 的匹配结果并且将它们以 flag 指定顺序输出到 $match 中. preg_match_all('/(.*?)<\/td>/is', $stream, $match); $len=count($match[1],1); echo "
湘潭大学学号为<<".$_REQUEST['xh'].">>的成绩单 | "; $j=0; for($i=1;$i<=($len+1)/7;$i++){ echo "|||||||
".$match[1][$j]." | "; if(($j+1)%7==0){ $j=$j+1; break; } } echo "