当前位置:首页 > 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. function qqLogin($qq_num,$qq_pwd){                //登录帐号 
  15. $data = httpGet(‘http://pt.3g.qq.com/’); 
  16. $action = preg_match(“/action=”(.+)?”/”, $data$matches); 
  17. $action = $matches[1]; 
  18. $params = array(); 
  19. $params["login_url"] = ‘http://pt.3g.qq.com/s?aid=nLogin’; 
  20. $params["sidtype"] = 1; 
  21. $params["loginTitle"] = ‘手机腾讯网’; 
  22. $params["bid"] = 0; 
  23. $params["qq"] = $qq_num
  24. $params["pwd"] = $qq_pwd
  25. $params["loginType"] =1; 
  26. $data = httpPost($action$params,1); 
  27. $action = preg_match(“/sid=(.+?)&/”, $data$matches); 
  28. $sid = $matches[1]; 
  29. if($sid){ 
  30. return $sid
  31. }else { 
  32. echo ‘登录失败’; 
  33.  
  34. function sendMsg($sid,$to_num,$msg){            //发送消息 
  35. $params = array(); 
  36. $params["msg"] = $msg
  37. $params["u"] = $to_num
  38. $params["saveURL"] = 0; 
  39. $params["do"] = “send”; 
  40. $params["on"] = 1; 
  41. $params["aid"] = “发送”; 
  42. $url = “http://q16.3g.qq.com/g/s?sid=” . $sid; 
  43. $data = httpPost($url$params); 
  44. if(preg_match(‘/消息发送成功/’,$data)) echo ‘发送成功<br />’; 
  45. else  echo ‘发送失败’;
  46.  
  47. function getMsg($sid,$qq_num) {                    //获取消息 
  48. $url = “http://q16.3g.qq.com/g/s?sid=” . $sid . “&u=” . $qq_num . “&saveURL=0&aid=nqqChat”; 
  49. $data = httpGet($url); 
  50. 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); 
  51. foreach($m[1] as $k=>$v){ 
  52. $tmp['title']=$v
  53. $tmp['msg']=$m[2][$k]; 
  54. $r[]=$tmp
  55. return $r
  56.  
  57. function httpGet($url,$header=0){                //GET请求 
  58. $opt = array
  59. CURLOPT_URL => $url
  60. CURLOPT_HEADER => $header
  61. CURLOPT_RETURNTRANSFER => 1, 
  62. CURLOPT_TIMEOUT => 60, 
  63. 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′ 
  64. ); 
  65. return curlRun($opt); 
  66.  
  67. function httpPost($url,$data,$header=0){         //POST请求 
  68. $opt = array
  69. CURLOPT_URL => $url
  70. CURLOPT_HEADER => $header
  71. CURLOPT_RETURNTRANSFER => 1, 
  72. CURLOPT_TIMEOUT => 60, 
  73. CURLOPT_POSTFIELDS => http_build_query($data), 
  74. 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′ 
  75. ); 
  76. return curlRun($opt); 
  77.  
  78. function curlRun($opt){ 
  79. $ch = curl_init(); 
  80. curl_setopt_array($ch,$opt); 
  81. $r = curl_exec($ch); 
  82. curl_close($ch); 
  83. return $r
  84.  
  85. ?> 

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

分享到:

相关文章