php教程

超轻量级php框架startmvc

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

更新时间:2020-03-07 00:33:33 作者:startmvc
本文实例讲述了PHP实现QQ空间自动回复说说的方法。分享给大家供大家参考,具体如下:<

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


<?php 
header("Content-type: text/html; charset=utf-8"); 
$qq = '';//QQ号 
$sid = '';//填写sid的值 
$con = '';//自定义内容,留空则使用simsimi 
$qzone = new qzone($qq,$sid); 
class qzone{ 
 private $sid =''; 
 public function __construct($qq,$sid){ 
 $this->sid = $sid; 
 $url = "http://ish.z.qq.com/infocenter_v2.jsp?B_UID={$qq}&sid={$sid}&g_ut=2"; 
 $re = $this->fetch($url); 
 $this->getsaying($re); 
 } 
 private function fetch($url,$postdata=null){ 
 $ch = curl_init();//www.oicqzone.com 
 curl_setopt($ch, CURLOPT_URL,$url); 
 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)"); 
 if($postdata!=null) curl_setopt($ch, CURLOPT_POSTFIELDS,$postdata); 
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
 curl_setopt($ch, CURLOPT_TIMEOUT, 20); 
 $re = curl_exec($ch); 
 curl_close($ch); 
 return $re; 
 } 
 private function getsaying($html){ 
 preg_match_all('/<\/a>:(.*?)评论\(\d\)<\/a>/',$html,$match); 
 foreach($match[0] as $k){ 
 if(strstr($k,'评论(0)')){ 
 $k = str_replace(PHP_EOL, '', $k); 
 $k = str_replace('
', '', $k); 
 $k = html_entity_decode($k); 
 preg_match('/<\/a>:(.*?)<span class="txt-fade">/',$k,$content);//www.oicqzone.com 
 preg_match('/myfeed_mood.jsp\?sid=.*&B_(.*?)&t1_source/',$k,$data); 
 $content = preg_replace('/<img[^>]+>/', '', $content[1]); 
 echo '找到一条说说:'.$content.' 机器人的回复是:'; 
 $data = 'B_'.$data[1]; 
 $content = talk($content); 
 echo $content.'<br />'; 
 $this->postcomment($content,$data); 
 sleep(3); 
 } 
 } 
 } 
 private function postcomment($content,$data){ 
 $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"; 
 $this->fetch("http://blog30.z.qq.com/mood/mood_reply.jsp?sid={$this->sid}&g_ut=2",$postdata); 
 } 
} 
function talk($content){ 
 global $con; 
 if($con) return $con; 
 $content = str_replace(' ', '', $content); 
 $ch = curl_init(); 
 curl_setopt($ch,CURLOPT_URL,'http://www.simsimi.com/talk.htm'); 
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
 curl_setopt($ch, CURLOPT_HEADER,1); 
 curl_setopt($ch, CURLOPT_NOBODY, false); 
 $rs = curl_exec($ch); 
 preg_match_all('/Set-Cookie: (.+)=(.+)$/m', $rs, $regs); 
 foreach($regs[1] as $i=>$k); 
 $cc=str_replace(' Path','' ,$k); 
 $cc='simsimi_uid=507454034223;'.$cc; 
 $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); 
 $re = json_decode($re,true); 
 return $re['sentence_resp']; 
} 
function HTTPClient($url,$cookie){ 
 $ch = curl_init(); 
 curl_setopt($ch, CURLOPT_URL,$url); 
 curl_setopt($ch, CURLOPT_COOKIE,$cookie); 
 curl_setopt($ch, CURLOPT_HEADER, 0); 
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
 curl_setopt($ch, CURLOPT_TIMEOUT, 30); 
 $re = curl_exec($ch); 
 curl_close($ch); 
 return $re; 
} 
?>

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

PHP QQ空间 自动回复 PHP实现QQ空间自动回复说说