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 相关文章推荐
ThinkPHP php 框架学习笔记
Oct 30 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
Dec 25 PHP
php配置php-fpm启动参数及配置详解
Nov 04 PHP
php动态生成函数示例
Mar 21 PHP
PHP处理postfix邮件内容的方法
Jun 16 PHP
PHP+Apache+Mysql环境搭建教程
Aug 01 PHP
php登录超时检测功能实例详解
Mar 21 PHP
PHP实现Session入库/存入redis的方法
May 04 PHP
PHP多线程模拟实现秒杀抢单
Feb 07 PHP
PDO::exec讲解
Jan 28 PHP
Yii框架学习笔记之应用组件操作示例
Nov 13 PHP
PHP var关键字相关原理及使用实例解析
Jul 11 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解决URL中文GBK乱码问题的两种方法
2014/06/03 PHP
php自定义分页类完整实例
2015/12/25 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
2016/08/08 PHP
[原创]网络复制内容时常用的正则+editplus
2006/11/30 Javascript
JavaScript Prototype对象
2009/01/07 Javascript
JS 强制设为首页的代码
2009/01/31 Javascript
jquery中实现简单的tabs插件功能的代码
2011/03/02 Javascript
JS弹出窗口代码大全(详细整理)
2012/12/21 Javascript
jquery选择器-根据多个属性选择示例代码
2013/10/21 Javascript
javascript创建和存储cookie示例
2014/01/07 Javascript
node-http-proxy修改响应结果实例代码
2016/06/06 Javascript
JavaScript中Number对象的toFixed() 方法详解
2016/09/02 Javascript
bootstrap模态框垂直居中效果
2016/12/03 Javascript
JS高仿抛物线加入购物车特效实现代码
2017/02/20 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
JavaScript实现连连看连线算法
2019/01/05 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
vue+koa2搭建mock数据环境的详细教程
2020/05/18 Javascript
[47:10]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第二场 12.16
2020/12/18 DOTA
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
2014/07/11 Python
使用Python发送邮件附件以定时备份MySQL的教程
2015/04/25 Python
在Python的Django框架中创建和使用模版
2015/07/15 Python
python如何读写csv数据
2018/03/21 Python
Pycharm设置utf-8自动显示方法
2019/01/17 Python
python地震数据可视化详解
2019/06/18 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
2019/08/13 Python
Python list与NumPy array 区分详解
2019/11/06 Python
Python 使用type来定义类的实现
2019/11/19 Python
如何在网站上添加谷歌定位信息
2016/04/16 HTML / CSS
大学生表扬信范文
2014/01/09 职场文书
运动会邀请函范文
2014/02/06 职场文书
教师对学生的评语
2014/04/28 职场文书
教师演讲稿开场白
2014/08/25 职场文书
python实现Nao机器人的单目测距
2021/09/04 Python
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL
阿里云服务器Ubuntu 20.04上安装Odoo 15
2022/05/20 Servers