PHP
·
发表于 5年以前
·
阅读量:8303
本文实例讲述了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⁣=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程序设计有所帮助。