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的大小写敏感问题整理
Dec 29 PHP
PHP 第三节 变量介绍
Apr 28 PHP
Php中文件下载功能实现超详细流程分析
Jun 13 PHP
php获取文件类型和文件信息的方法
Jul 10 PHP
Symfony2框架学习笔记之表单用法详解
Mar 18 PHP
php反射类ReflectionClass用法分析
May 12 PHP
php微信公众平台交互与接口详解
Nov 28 PHP
php 微信开发获取用户信息如何实现
Dec 13 PHP
PHP面向对象之事务脚本模式(详解)
Jun 07 PHP
PHP 7.0新增加的特性介绍
Jun 08 PHP
Laravel下生成验证码的类
Nov 15 PHP
PHP重载基础知识回顾
Sep 10 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合并数组array_merge函数运算符加号与的区别
2008/10/31 PHP
ueditor 1.2.6 使用方法说明
2013/07/24 PHP
PHP回溯法解决0-1背包问题实例分析
2015/03/23 PHP
如何把php5.3版本升级到php5.4或者php5.5
2015/07/31 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
Windows服务器中PHP如何安装redis扩展
2019/09/27 PHP
JS实现随机数生成算法示例代码
2013/08/08 Javascript
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
JS图片等比例缩放方法完整示例
2016/08/03 Javascript
理解AngularJs篇:30分钟快速掌握AngularJs
2016/12/23 Javascript
深入理解ES7的async/await的用法
2017/09/09 Javascript
Vue2.0用户权限控制解决方案的示例
2018/02/10 Javascript
Element-ui tree组件自定义节点使用方法代码详解
2018/09/17 Javascript
webpack之引入图片的实现及问题
2018/10/08 Javascript
使用taro开发微信小程序遇到的坑总结
2019/04/08 Javascript
微信小程序实现的一键连接wifi功能示例
2019/04/24 Javascript
微信小程序如何获取地址
2019/12/24 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
2020/03/03 Javascript
跟老齐学Python之用while来循环
2014/10/02 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
2019/06/27 Python
pytorch 修改预训练model实例
2020/01/18 Python
python开发一款翻译工具
2020/10/10 Python
Python爬虫+Tkinter制作一个翻译软件的示例
2021/02/20 Python
html5 input输入实时检测以及延时优化
2018/07/18 HTML / CSS
使用canvas一步步实现图片打码功能的方法
2019/06/17 HTML / CSS
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
Charlotte Tilbury澳大利亚官网:英国美妆品牌
2018/10/05 全球购物
全球速卖通俄罗斯站:AliExpress俄罗斯
2019/06/17 全球购物
美国传奇滑手Paul Rodriguez创办的街头滑板品牌:Primitive Skateboarding
2019/10/29 全球购物
Shell编程面试题
2016/05/29 面试题
建筑装饰学院室内设计专业个人自我评价
2013/12/07 职场文书
物理系毕业生自荐书范文
2014/02/22 职场文书
计算机专业职业规划
2014/02/28 职场文书
2014年两会学习心得体会
2014/03/17 职场文书
防沙治沙典型材料
2014/05/07 职场文书
用php如何解决大文件分片上传问题
2021/07/07 PHP