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 COOKIE设置为浏览器进程
Jun 21 PHP
php数组的一些常见操作汇总
Jul 17 PHP
php学习笔记(三)操作符与控制结构
Aug 06 PHP
PHP基础知识回顾
Aug 16 PHP
php字符串截取的简单方法
Jul 04 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
May 08 PHP
ThinkPHP3.2.2的插件控制器功能简述
Jul 09 PHP
ThinkPHP跳转页success及error模板实例教程
Jul 17 PHP
php格式化时间戳显示友好的时间实现思路及代码
Oct 23 PHP
php中序列化与反序列化详解
Feb 13 PHP
PHP实现的数据对象映射模式详解
Mar 20 PHP
Smarty模板类内部原理实例分析
Jul 03 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
Notice: Trying to get property of non-object problem(PHP)解决办法
2012/03/11 PHP
WordPress中注册菜单与调用菜单的方法详解
2015/12/18 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
2017/02/23 PHP
PHP数组中头部和尾部添加元素的方法(array_unshift,array_push)
2017/04/10 PHP
js 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
2009/04/10 Javascript
JavaScript 学习笔记(十四) 正则表达式
2010/01/22 Javascript
初试jQuery EasyUI 使用介绍
2010/04/01 Javascript
js判断运行jsp页面的浏览器类型以及版本示例
2013/10/30 Javascript
json字符串之间的相互转换示例代码
2014/08/21 Javascript
运用jQuery定时器的原理实现banner图片切换
2014/10/22 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
jQuery EasyUI 页面加载等待及页面等待层
2017/02/06 Javascript
nodejs 子进程正确的打开方式
2017/07/03 NodeJs
JS实现十字坐标跟随鼠标效果
2017/12/25 Javascript
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
Angular Excel 导入与导出的实现代码
2019/04/17 Javascript
Vue实现根据hash高亮选项卡
2019/05/27 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
Javascript实现秒表计时游戏
2020/05/27 Javascript
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
浅析Python中的多条件排序实现
2016/06/07 Python
python2.7+selenium2实现淘宝滑块自动认证功能
2018/02/24 Python
浅析Python数据处理
2018/05/02 Python
Python2包含中文报错的解决方法
2018/07/09 Python
对Python使用mfcc的两种方式详解
2019/01/09 Python
使用python绘制二元函数图像的实例
2019/02/12 Python
利用setuptools打包python程序的方法步骤
2020/01/18 Python
Python TKinter如何自动关闭主窗口
2020/02/26 Python
基于Python数据分析之pandas统计分析
2020/03/03 Python
如何用 Python 制作 GitHub 消息助手
2021/02/20 Python
amaze ui 的使用详细教程
2020/08/19 HTML / CSS
装潢设计专业推荐信模板
2013/11/26 职场文书
八年级英语教学反思
2014/01/09 职场文书
django学习之ajax post传参的2种格式实例
2021/05/14 Python
MySQL中VARCHAR与CHAR格式数据的区别
2021/05/26 MySQL
GO中sync包自由控制并发示例详解
2022/08/05 Golang