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 相关文章推荐
PHP中Session的概念
Oct 09 PHP
一步一步学习PHP(6) 面向对象
Feb 16 PHP
php中获得视频时间总长度的另一种方法
Sep 15 PHP
php操作JSON格式数据的实现代码
Dec 24 PHP
PHP爆绝对路径方法收集整理
Sep 17 PHP
php MessagePack介绍
Oct 06 PHP
php命令行使用方法和命令行参数说明
Apr 08 PHP
php+ajax实现图片文件上传功能实例
Jun 17 PHP
基于php的CMS中展示文章类实例分析
Jun 18 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
Oct 10 PHP
thinkPHP简单实现多个子查询语句的方法
Dec 05 PHP
PHP 中使用ajax时一些常见错误总结整理
Feb 27 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 异常处理实现代码
2009/03/10 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
destoon调用discuz论坛中带图片帖子的实现方法
2014/08/21 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
有趣的javascript数组定义方法
2010/09/10 Javascript
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
Javascript中的call()方法介绍
2015/03/15 Javascript
在JavaScript中处理时间之getHours()方法的使用
2015/06/10 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
2017/02/08 Javascript
vuejs手把手教你写一个完整的购物车实例代码
2017/07/06 Javascript
Vue中的无限加载vue-infinite-loading的方法
2018/04/08 Javascript
详解js的视频和音频采集
2018/08/09 Javascript
解决webpack+Vue引入iView找不到字体文件的问题
2018/09/28 Javascript
mock.js实现模拟生成假数据功能示例
2019/01/15 Javascript
浅谈express.js框架中间件(middleware)
2019/04/07 Javascript
Python的Django框架中设置日期和字段可选的方法
2015/07/17 Python
Python2.x版本中基本的中文编码问题解决
2015/10/12 Python
python 列表,数组,矩阵两两转换tolist()的实例
2018/04/04 Python
详解python:time模块用法
2019/03/25 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
2020/01/09 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
Python类的动态绑定实现原理
2020/03/21 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
2020/09/09 Python
python 实现学生信息管理系统的示例
2020/11/28 Python
利用CSS3实现毛玻璃效果示例源码
2016/09/25 HTML / CSS
会计系个人求职信范文分享
2013/12/20 职场文书
校本教研工作制度
2014/01/22 职场文书
检讨书大全
2015/01/27 职场文书
乒乓球比赛通知
2015/04/27 职场文书
建房合同协议书
2016/03/21 职场文书
人民币使用说明书
2019/04/17 职场文书
如何判断pytorch是否支持GPU加速
2021/06/01 Python
Anaconda安装pytorch及配置PyCharm 2021环境
2021/06/04 Python