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


Posted in PHP onDecember 02, 2015

本文实例讲述了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 相关文章推荐
让你的网站首页自动选择语言转跳
Dec 06 PHP
php visitFile()遍历指定文件夹函数
Aug 21 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
Nov 07 PHP
PHP 常用数组内部函数(Array Functions)介绍
Jun 05 PHP
浅谈discuz密码加密的方式
May 22 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
Nov 15 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
Jan 14 PHP
PHP文件上传之多文件上传的实现思路
Jan 27 PHP
php生成与读取excel文件
Oct 14 PHP
php微信开发之图片回复功能
Jun 14 PHP
解决PhpStorm64不能启动的问题
Jun 20 PHP
PHP使用非对称加密算法RSA
Apr 21 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
Dec 02 #PHP
thinkphp微信开发(消息加密解密)
Dec 02 #PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
Dec 02 #PHP
PHP接收json 并将接收数据插入数据库的实现代码
Dec 01 #PHP
实例讲解yii2.0在php命令行中运行的步骤
Dec 01 #PHP
PHP简单的MVC框架实现方法
Dec 01 #PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
Dec 01 #PHP
You might like
PHP中Date获取时间不正确怎么办
2008/06/05 PHP
PHP逐行输出(ob_flush与flush的组合)
2012/02/04 PHP
PHP使用Alexa API获取网站的Alexa排名例子
2014/06/12 PHP
php数据访问之查询关键字
2016/05/09 PHP
php常用字符串查找函数strstr()与strpos()实例分析
2019/06/21 PHP
Laravel 5.1 框架Blade模板引擎用法实例分析
2020/01/04 PHP
经验几则 推荐
2006/09/05 Javascript
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
2007/01/16 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
JavaScript中的splice()方法使用详解
2015/06/09 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
深入理解jQuery3.0的domManip函数
2016/09/01 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
详解vue-cli开发环境跨域问题解决方案
2017/06/06 Javascript
vue+element实现批量删除功能的示例
2018/02/28 Javascript
深入浅析AngularJs模版与v-bind
2018/07/06 Javascript
vue-autoui自匹配webapi的UI控件的实现
2020/03/20 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
2020/06/05 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
HTML5 canvas标签实现刮刮卡效果
2015/04/24 HTML / CSS
英国领先的酒杯和水晶玻璃器皿制造商:Dartington Crystal
2019/06/23 全球购物
线程问题:wait()方法是定义在哪个类里面
2015/07/07 面试题
夜大毕业自我鉴定
2013/10/11 职场文书
面试后感谢信
2014/02/01 职场文书
幼儿园小班教学反思
2014/02/02 职场文书
售后服务承诺书范文
2014/03/26 职场文书
我的大学生活演讲稿
2014/04/25 职场文书
物业管理工作方案
2014/05/10 职场文书
奖金申请报告模板
2015/05/15 职场文书
应收账款管理制度
2015/08/06 职场文书
推广普通话宣传标语口号
2015/12/26 职场文书
会计专业自荐信范文
2019/05/22 职场文书