ホームページ >バックエンド開発 >PHPチュートリアル >教務ネットワークへのログインをシミュレートするためのcurlを使用したphpについての質問
教務ネットワークへのログインを模擬するためのphpによるcurlの問題について
このシステムはWeChatのクエリに使用されており、学生は学生IDとパスワードを返信することでスコアを確認できます。
背景:
学務システム: Zhengfang の学務システム (http://jwxt.tjtc.edu.cn/)
必要のない入り口を見つけました確認コード: http://jwxt.tjtc.edu.cn/default3.aspx
ここで、学生のスコアを取得するために、この入り口を介してログインをシミュレートする必要があります。
現在、次のコードが利用可能です:
このコードは基本的にログインをシミュレートして、生徒の成績や授業スケジュールなどを取得できます。
しかし、テストで得られた内容はすべて無効です。どうすれば解決できますか?何か問題がありますか?
zfapi.php
<br><?php<br />function get_td_array($table) { <br /> $table = preg_replace("'<table[^>] *?>'si","",$table); <br> $table = preg_replace("'<tr[^>]*?>'si","",$table); <br> $table = preg_replace("'<td[^>]*?>'si","",$table); $table = str_replace(("</tr>","{tr }" ,$table); <br> $table = str_replace("</td>","{td}",$table); <br /> //HTML タグを削除します <br /> $table = preg_replace(" '<) ;[/!]*?[^<>]*?>'si","",$table); <br> //空白文字を削除 <br> $table = preg_replace("'( [rn ])[s] '","",$table);<br> $table = "",$table); table = str_replace(" ","",$table); <br> <br> $table =explode('{tr}', $table); <br> array_pop ($table); $key=>$tr) { <br> $td =explode('{td}', $tr); <br> array_pop($t d); $td_array[] = $td; 🎜 > private $password;/ /パスワード<br> private $name;//名前<br> private $operate;//操作<br> public $message = '';//返す情報<br> public $url = ' http://jwxt. tjtc.edu.cn/';//学務ネットワークアドレス<br> <br> public function __construct($username, $password, $operate) {<br> $this->username = $username;<br> $ this->password = $password;<br> $this->operate = $operate;<br> //後でデータを取得しやすくするために、最初にログインしてください (ここに問題があるようです) ) <br> $this->Simulated($this->url.'default3.aspx', TRUE, '__VIEWSTATE=/wEPDwUKMTg5NjY5MDM3OWRkSvPPSOtLv5y+uNo7W2Yge4y1bPI=&TextBox1='.$this->ユーザー名.'&TextBox2='。 $this->password.'&Button1 =');<br> $this->getName();<br> }<br><br> public function returnJson() {<br> switch ($this-> ;operate) {<br> case ' xinxi'://個人情報照会<br> $this->prifile();<br> Break;<br> case 'dengji'://レベル検査照会<br> $this->getDjks(); <br> ブレーク;<br> case 'chengji'://スコアクエリ<br> $this->getchengji();<br> ブレーク;<br> case 'kebiao' ://授業スケジュールクエリ<br> $this->getKb();<br> Break;<br> case 'bukao'://追試験クエリ<br> $this->getbukao(); <br> 休憩;<br> }<br>return $this->message;<br> }<br><br> /**<br> * 個人情報の取得 <br>*/<br> private function prifile() {<br> $result = $this->Simulated($this ->url.'xsgrxx.aspx?xh='.$this->username.'&xm='.$this->name.'&gnmkdm=N121501');<br> preg_match_all('/<img id="xszp" src="(.*)" alt="照片" align="AbsMiddle" border="0" height="144" width="112" />/', $result, $dataHeader) ;//1,0<br> preg_match_all('/<span id="(.*)"></span> $this->message = $dataValue1;<br> }<br> <br> private function getKb() {//课表<br> $result = $this->Simulated($this->url.' xskbcx.aspx?xh='.$this->username.'&xm='.$this->name.'&gnmkdm=N121603');<br> preg_match_all('/<table id="Table1" [ ^>]*>([sS]*?)</table>/',$result,$rs);<br> $arr = get_td_array($rs[0][0]);<br> for ($d=1;$d<=7;$d ){<br>$shuzu[$d][1]=$arr[1][$d];<br>$shuzu[$d][ 2]=$arr[2][$d 1];<br>$shuzu[$d][3]=$arr[3][$d];<br>$shuzu[$d][4]= $arr[4][$d];<br>$shuzu[$d][5]=$arr[5][$d];<br>$shuzu[$d][6]=$arr[6] ][$d];<br>$シュズ[$d][7]=$arr[7][$d];<br>$シュズ[$d][8]=$arr[8][$d ];<br>$shuzu[$d][9]=$arr[9][$d];<br>$shuzu[$d][10]=$arr[10][$d];<br>$シュズ[$d][11]=$arr[11][$d];<div class="clear"></div>