当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP模拟QQ登录,发送和接收信息的例子

发布:smiling 来源: PHP粉丝网  添加日期:2014-06-25 15:49:37 浏览: 评论:0 

下面我们一起来看一个PHP模拟QQ登录,发送和接收信息的例子,希望此例子对各位同学会有所帮助.

PHP实例代码如下:

  1. <?php 
  2. header(‘Content-type: text/html; charset=utf-8′); 
  3. $sid = qqLogin(‘发送信息的QQ’,'发送信息的QQ密码’);   //登录帐号 
  4. sendMsg($sid,’接收信息的QQ’,'聊天内容’);            //发送消息 
  5.  
  6. $data = getMsg($sid,’接收信息的QQ’);               //获取和某个帐号的聊天记录 
  7.  
  8. if(!emptyempty($data)){ 
  9. foreach($data as $v){ 
  10. echo $v['title'].’<br />’; 
  11. echo $v['msg'].’<br />’; 
  12. echo ‘————————<br />’; 
  13. } 
  14. } 
  15.  
  16. function qqLogin($qq_num,$qq_pwd){                //登录帐号 
  17. $data = httpGet(‘http://pt.3g.qq.com/’); 
  18. $action = preg_match(“/action=”(.+)?”/”, $data, $matches); 
  19. $action = $matches[1]; 
  20. $params = array(); 
  21. $params["login_url"] = ‘http://pt.3g.qq.com/s?aid=nLogin’; 
  22. $params["sidtype"] = 1; 
  23. $params["loginTitle"] = ‘手机腾讯网’; 
  24. $params["bid"] = 0; 
  25. $params["qq"] = $qq_num; 
  26. $params["pwd"] = $qq_pwd; 
  27. $params["loginType"] =1; 
  28. $data = httpPost($action, $params,1); 
  29. $action = preg_match(“/sid=(.+?)&/”, $data, $matches); 
  30. $sid = $matches[1]; 
  31. if($sid){ 
  32. return $sid; 
  33. }else { 
  34. echo ‘登录失败’; 
  35. } 
  36. } 
  37.  
  38. function sendMsg($sid,$to_num,$msg){            //发送消息 
  39. $params = array(); 
  40. $params["msg"] = $msg; 
  41. $params["u"] = $to_num; 
  42. $params["saveURL"] = 0; 
  43. $params["do"] = “send”; 
  44. $params["on"] = 1; 
  45. $params["aid"] = “发送”; 
  46. $url = “http://q16.3g.qq.com/g/s?sid=” . $sid; 
  47. $data = httpPost($url, $params); 
  48. if(preg_match(‘/消息发送成功/’,$data)) echo ‘发送成功<br />’; 
  49. else  echo ‘发送失败’;
  50. } 
  51.  
  52. function getMsg($sid,$qq_num) {                    //获取消息 
  53. $url = “http://q16.3g.qq.com/g/s?sid=” . $sid . “&u=” . $qq_num . “&saveURL=0&aid=nqqChat”; 
  54. $data = httpGet($url); 
  55. preg_match_all(‘/<div class=”main-module bm-gray”>s+<p class=”(?:ft-s-gray|ft-s ft-cl2)”>(.+?)</p>s+<p>(.+?)</p></div>/s’,str_replace(“rn”,”",$data),$m); 
  56. foreach($m[1] as $k=>$v){ 
  57. $tmp['title']=$v; 
  58. $tmp['msg']=$m[2][$k]; 
  59. $r[]=$tmp; 
  60. } 
  61. return $r; 
  62. } 
  63.  
  64. function httpGet($url,$header=0){                //GET请求 
  65. $opt = array( 
  66. CURLOPT_URL => $url, 
  67. CURLOPT_HEADER => $header, 
  68. CURLOPT_RETURNTRANSFER => 1, 
  69. CURLOPT_TIMEOUT => 60, 
  70. CURLOPT_USERAGENT=>’Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13′ 
  71. ); 
  72. return curlRun($opt); 
  73. } 
  74.  
  75. function httpPost($url,$data,$header=0){         //POST请求 
  76. $opt = array( 
  77. CURLOPT_URL => $url, 
  78. CURLOPT_HEADER => $header, 
  79. CURLOPT_RETURNTRANSFER => 1, 
  80. CURLOPT_TIMEOUT => 60, 
  81. CURLOPT_POSTFIELDS => http_build_query($data), 
  82. CURLOPT_USERAGENT=>’Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13′ 
  83. ); 
  84. return curlRun($opt); 
  85. } 
  86.  
  87. function curlRun($opt){ 
  88. $ch = curl_init(); 
  89. curl_setopt_array($ch,$opt); 
  90. $r = curl_exec($ch); 
  91. curl_close($ch); 
  92. return $r; 
  93. } 
  94.  
  95. ?> 

Tags: PHP模拟QQ登录 发送接收信息

分享到:

相关文章