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 相关文章推荐
使用sockets:从新闻组中获取文章(一)
Oct 09 PHP
BBS(php &amp; mysql)完整版(六)
Oct 09 PHP
怎样在php中使用PDF文档功能
Oct 09 PHP
mcrypt启用 加密以及解密过程详细解析
Aug 07 PHP
php获取301跳转URL简单实例
Dec 16 PHP
php常用字符串处理函数实例分析
Nov 22 PHP
php运行时动态创建函数的方法
Mar 16 PHP
php进行ip地址掩码运算处理的方法
Jul 11 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
Nov 03 PHP
PHP实现验证码校验功能
Nov 16 PHP
PHP经典设计模式之依赖注入定义与用法详解
May 21 PHP
PHP设计模式入门之状态模式原理与实现方法分析
Apr 26 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利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
php addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
Yii操作数据库实现动态获取表名的方法
2016/03/29 PHP
PHP abstract 抽象类定义与用法示例
2018/05/29 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
js选择并转移导航菜单示例代码
2014/08/19 Javascript
jQuery中is()方法用法实例
2015/01/06 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
2015/08/21 Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
2015/12/08 Javascript
JS HTML5拖拽上传图片预览
2016/07/18 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
2017/10/25 Javascript
ES6关于Promise的用法详解
2018/05/07 Javascript
vue实现前台列表数据过滤搜索、分页效果
2019/05/28 Javascript
关于layui 下拉列表的change事件详解
2019/09/20 Javascript
使用Vue实现简单计算器
2020/02/25 Javascript
Python set集合类型操作总结
2014/11/07 Python
Python中的__SLOTS__属性使用示例
2015/02/18 Python
python实现将html表格转换成CSV文件的方法
2015/06/28 Python
python中文编码与json中文输出问题详解
2018/08/24 Python
基于python实现名片管理系统
2018/11/30 Python
解决pycharm的Python console不能调试当前程序的问题
2019/01/20 Python
kafka-python 获取topic lag值方式
2019/12/23 Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
2020/06/22 Python
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
linux面试题参考答案(9)
2015/01/07 面试题
大学生村官任职感言
2014/01/09 职场文书
文秘专业应届生求职信
2014/05/26 职场文书
党员对照检查材料思想汇报
2014/09/16 职场文书
高等学院职业生涯规划书范文
2014/09/16 职场文书
Python 数据结构之十大经典排序算法一文通关
2021/10/16 Python
Win11任务栏太宽了怎么办?一招解决Win11任务栏太宽问题
2021/11/21 数码科技
Mysql数据库group by原理详解
2022/07/07 MySQL