这两天也不知道怎么,学习效率低。很无奈。
如何知道要去URL该怎么填写呢?就是填写表单中的Action内容:
tempnam() 函数创建一个具有唯一文件名的临时文件。
1 <?php 2 header("content-type:text/html;charset=gbk"); 3 //data可直接抓包查看依据数据来写。 4 $data = "lgt=0&pwuser=while&pwpwd=xishaonian&hideid=0&forward=&jumpurl=http%3A%2F%2Fbbs.ly.shangdu.com%2Fmessage.php&m=bbs&step=2&cktime=31536000"; 5 $cookie_file = tempnam('./temp','cookie'); 6 $curl = curl_init(); 7 curl_setopt($curl,CURLOPT_URL,"http://bbs.ly.shangdu.com/login.php"); 8 curl_setopt($curl,CURLOPT_HEADER,0); 9 curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); 10 curl_setopt($curl,CURLOPT_POST,1); 11 curl_setopt($curl,CURLOPT_COOKIEJAR,$cookie_file); 12 curl_setopt($curl,CURLOPT_POSTFIELDS,$data); 13 curl_exec($curl); 14 curl_close($curl); 15 //以上就算是登陆完成了,但等下还要将cookie保存。 16 //此时就需要设置一个读取我们保存在$cookie_file变量中的cookie了。 17 //使用CURLOPT_COOKIEFILE 18 $url = curl_init(); 19 curl_setopt($url,CURLOPT_URL,"http://bbs.ly.shangdu.com/u.php?uid=1325511"); 20 curl_setopt($url,CURLOPT_HEADER,0); 21 curl_setopt($url,CURLOPT_RETURNTRANSFER,1); 22 curl_setopt($url,CURLOPT_COOKIEFILE,$cookie_file); 23 $content = curl_exec($url); 24 //配合正则表达式来提取等级、身份、总积分等信息 25 $reg = "/[等级|身份|总积分].*?s[2|5].[^>]*>(.[^<]*)/"; 26 preg_match_all($reg,$content,$arr); 27 var_dump($arr); 28 echo $arr[1][0] ."<br />"; 29 echo $arr[1][1] ."<br />"; 30 echo $arr[1][2] ."<br />"; 31 curl_close($url); 32 ?>
显示案例: