跟着百度学PHP[17]-PHP扩展CURL的模拟登陆并获取数据

这两天也不知道怎么,学习效率低。很无奈。

如何知道要去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  ?>

显示案例:

原文地址:https://www.cnblogs.com/xishaonian/p/6548149.html