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

PHP实现QQ空间自动回复说说的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-06-27 17:18:09 浏览: 评论:0 

这篇文章主要介绍了PHP实现QQ空间自动回复说说的方法,涉及php基于curl调用自动回复接口的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下。

本文实例讲述了PHP实现QQ空间自动回复说说的方法,分享给大家供大家参考,具体如下:

  1. <?php  
  2. header("Content-type: text/html; charset=utf-8");  
  3. $qq = '';//QQ号  
  4. $sid = '';//填写sid的值  
  5. $con = '';//自定义内容,留空则使用simsimi  
  6. $qzone = new qzone($qq,$sid);  
  7. class qzone{  
  8.   private $sid ='';  
  9.   public function __construct($qq,$sid){  
  10.     $this->sid = $sid;  
  11.     $url = "http://ish.z.qq.com/infocenter_v2.jsp?B_UID={$qq}&sid={$sid}&g_ut=2";  
  12.     $re = $this->fetch($url);  
  13.     $this->getsaying($re);  
  14.   }  
  15.   private function fetch($url,$postdata=null){  
  16.     $ch = curl_init();//www.phpfensi.com  
  17.     curl_setopt($ch, CURLOPT_URL,$url);  
  18.     curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 820)");  
  19.     if($postdata!=null) curl_setopt($ch, CURLOPT_POSTFIELDS,$postdata);  
  20.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  21.     curl_setopt($ch, CURLOPT_TIMEOUT, 20);  
  22.     $re = curl_exec($ch);  
  23.     curl_close($ch);  
  24.     return $re;  
  25.   }  
  26.   private function getsaying($html){  
  27.     preg_match_all('/<\/a>:(.*?)评论\(\d\)<\/a>/',$html,$match);  
  28.     foreach($match[0] as $k){  
  29.       if(strstr($k,'评论(0)')){  
  30.         $k = str_replace(PHP_EOL, ''$k);  
  31.         $k = str_replace('&#10;'''$k);  
  32.         $k = html_entity_decode($k);  
  33.         preg_match('/<\/a>:(.*?)<span class="txt-fade">/',$k,$content);//www.oicqzone.com  
  34.         preg_match('/myfeed_mood.jsp\?sid=.*&B_(.*?)&t1_source/',$k,$data);  
  35.         $content = preg_replace('/<img[^>]+>/'''$content[1]);  
  36.         echo '找到一条说说:'.$content.' 机器人的回复是:';  
  37.         $data = 'B_'.$data[1];  
  38.         $content = talk($content);  
  39.         echo $content.'<br />';  
  40.         $this->postcomment($content,$data);  
  41.         sleep(3);  
  42.       }  
  43.     }  
  44.   }  
  45.   private function postcomment($content,$data){  
  46.     $postdata = "content={$content}&{$data}&t1_source=1&feedcenter_pn=1&flag=1&type=all&channel=0&back=false&offset=0&ic=false&dl=null&to_tweet=0&submit=%E8%AF%84%E8%AE%BA";  
  47.     $this->fetch("http://blog30.z.qq.com/mood/mood_reply.jsp?sid={$this->sid}&g_ut=2",$postdata);    
  48.   }  
  49. }  
  50. function talk($content){  
  51.     global $con;  
  52.     if($conreturn $con;  
  53.   $content = str_replace(' '''$content);  
  54.     $ch = curl_init();  
  55.   curl_setopt($ch,CURLOPT_URL,'http://www.simsimi.com/talk.htm');  
  56.   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  57.   curl_setopt($ch, CURLOPT_HEADER,1);  
  58.   curl_setopt($ch, CURLOPT_NOBODY, false);  
  59.   $rs = curl_exec($ch);  
  60.   preg_match_all('/Set-Cookie: (.+)=(.+)$/m'$rs$regs);  
  61.   foreach($regs[1] as $i=>$k);  
  62.   $cc=str_replace(' Path','' ,$k);  
  63.   $cc='simsimi_uid=507454034223;'.$cc;  
  64.   $re = HTTPClient('http://www.simsimi.com/func/reqN?lc=ch&ft=1.0&req='.$content.'&fl=http%3A%2F%2Fwww.simsimi.com%2Ftalk.htm',$cc);  
  65.   $re = json_decode($re,true);  
  66.   return $re['sentence_resp'];  
  67. }  
  68. function HTTPClient($url,$cookie){  
  69.   $ch = curl_init();  
  70.   curl_setopt($ch, CURLOPT_URL,$url);  
  71.   curl_setopt($ch, CURLOPT_COOKIE,$cookie);  
  72.   curl_setopt($ch, CURLOPT_HEADER, 0);  
  73.   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  74.   curl_setopt($ch, CURLOPT_TIMEOUT, 30);  
  75.   $re = curl_exec($ch);  
  76.   curl_close($ch);  
  77.   return $re;  
  78. }  
  79. ?> 

希望本文所述对大家PHP程序设计有所帮助。

Tags: PHP自动回复

分享到: