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 相关文章推荐
一个ubbcode的函数,速度很快.
Oct 09 PHP
PHP5+UTF8多文件上传类
Oct 17 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
Apr 12 PHP
组合算法的PHP解答方法
Feb 04 PHP
php类常量的使用详解
Jun 08 PHP
PHP 提取图片img标记中的任意属性的简单实例
Dec 10 PHP
php实现网站顶踩功能的完整前端代码
Jul 19 PHP
php图片水印添加、压缩、剪切的封装类实现
Apr 18 PHP
PHP自定义函数获取URL中一级域名的方法
Aug 23 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
Apr 01 PHP
详解PHP中的外观模式facade pattern
Feb 05 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
Mar 18 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下载xls文件(自己动手写的)
2014/04/18 PHP
php单例模式示例分享
2015/02/12 PHP
浅谈PHP中try{}catch{}的使用方法
2016/12/09 PHP
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
JQuery上传插件Uploadify使用详解及错误处理
2010/04/27 Javascript
基于jQuery的实现简单的分页控件
2010/10/10 Javascript
jquery 插件学习(六)
2012/08/06 Javascript
顶部缓冲下拉菜单导航特效的JS代码
2013/08/27 Javascript
JavaScript对象的property属性详解
2014/04/01 Javascript
javascript基本类型详解
2014/11/28 Javascript
贴近用户体验的Jquery日期、时间选择插件
2015/08/19 Javascript
jquery实现带渐变淡入淡出并向右依次展开的多级菜单效果实例
2015/08/22 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
2016/01/12 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
js获取地址栏中传递的参数(两种方法)
2017/02/08 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
JavaScript实现计数器基础方法
2017/10/10 Javascript
webpack学习教程之前端性能优化总结
2017/12/05 Javascript
浅谈Koa2框架利用CORS完成跨域ajax请求
2018/03/06 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
Vue数据双向绑定的深入探究
2018/11/27 Javascript
如何解决vue在ios微信&quot;复制链接&quot;功能问题
2020/03/26 Javascript
[00:05]ChinaJoy现场 DOTA2玩家高呼“CN DOTA BEST DOTA”
2019/08/04 DOTA
Django admin实现图书管理系统菜鸟级教程完整实例
2017/12/12 Python
python sqlite的Row对象操作示例
2019/09/11 Python
python tornado修改log输出方式
2019/11/18 Python
Python&amp;&amp;GDAL实现NDVI的计算方式
2020/01/09 Python
关于多元线性回归分析——Python&amp;SPSS
2020/02/24 Python
人力资源管理专业自荐信
2014/06/24 职场文书
房屋产权共有协议书范本
2014/11/03 职场文书
检察院起诉书
2015/05/20 职场文书
如果用一句诗总结你的上半年,你会用哪句呢?
2019/07/16 职场文书
SQL之各种join小结详细讲解
2021/08/04 MySQL
Vue监视数据的原理详解
2022/02/24 Vue.js
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS