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 相关文章推荐
实用函数9
Nov 08 PHP
php中全局变量global的使用演示代码
May 18 PHP
PHP curl_setopt()函数实例代码与参数分析
Jun 02 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
Dec 28 PHP
基于php伪静态的实现详细介绍
Apr 28 PHP
php去掉URL网址中带有PHPSESSID的配置方法
Jul 08 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
Dec 22 PHP
php遍历CSV类实例
Apr 14 PHP
php编写批量生成不重复的卡号密码代码
May 14 PHP
php实现的SSO单点登录系统接入功能示例分析
Oct 12 PHP
PHP API接口必备之输出json格式数据示例代码
Jun 27 PHP
PHP中通过getopt解析GNU C风格命令行选项
Nov 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 magic_quotes_gpc的使用方法详解
2013/06/24 PHP
PHP在网页中动态生成PDF文件详细教程
2014/07/05 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
2017/09/26 PHP
JTrackBar水平拖动效果
2007/07/15 Javascript
javascript Array.sort() 跨浏览器下需要考虑的问题
2009/12/07 Javascript
Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
2010/03/18 Javascript
用jquery与css打造个性化的单选框和复选框
2010/10/20 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
JavaScript定义变量和变量优先级问题探讨
2014/10/11 Javascript
jQuery Validate表单验证深入学习
2015/12/18 Javascript
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
2016/02/23 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
2016/02/25 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
使用jQuery实现Web页面换肤功能的要点解析
2016/05/12 Javascript
bootstrap基础知识学习笔记
2016/11/02 Javascript
基于JS设计12306登录页面
2016/12/28 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
解决Vue watch里调用方法的坑
2020/11/07 Javascript
详解Python中的__new__()方法的使用
2015/04/09 Python
在Python下进行UDP网络编程的教程
2015/04/29 Python
在Python中执行系统命令的方法示例详解
2017/09/14 Python
python根据unicode判断语言类型实例代码
2018/01/17 Python
Python 12306抢火车票脚本 Python京东抢手机脚本
2018/02/06 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
2018/12/26 Python
pyspark操作MongoDB的方法步骤
2019/01/04 Python
Python线程条件变量Condition原理解析
2020/01/20 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
2020/06/23 Python
使用Python项目生成所有依赖包的清单方式
2020/07/13 Python
德国2018年度最佳在线药房:Bodfeld Apotheke
2019/11/04 全球购物
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的
2015/07/24 面试题
应届生求职简历的自我评价怎么写
2013/10/23 职场文书
心碎乌托邦的创业计划书范文
2013/12/26 职场文书
财务会计自荐信范文
2014/02/21 职场文书
学生逃课检讨书
2015/02/17 职场文书
Pytest中skip skipif跳过用例详解
2021/06/30 Python