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实现分页的一个示例
Oct 09 PHP
用PHP实现Ftp用户的在线管理的代码
Mar 06 PHP
php中将地址生成迅雷快车旋风链接的代码[测试通过]
Apr 20 PHP
php中随机显示图片的函数代码
Jun 23 PHP
探讨php中防止SQL注入最好的方法是什么
Jun 10 PHP
php实现约瑟夫问题的方法小结
Mar 23 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
Jun 06 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 PHP
php实现保存周期为1天的购物车类
Jul 07 PHP
php curl获取到json对象并转成数组array的方法
May 31 PHP
PHP利用Mysql锁解决高并发的方法
Sep 04 PHP
php常用日期时间函数实例小结
Jul 04 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实现自动获取生成文章主题关键词功能的深入分析
2013/06/03 PHP
php微信公众号开发模式详解
2016/11/28 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
PHP多进程简单实例小结
2019/11/09 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
表单(FORM)的一些实用效果代码
2007/03/25 Javascript
Javascript 的addEventListener()及attachEvent()区别分析
2009/05/21 Javascript
js脚本获取webform服务器控件的方法
2014/05/16 Javascript
JavaScript异步回调的Promise模式封装实例
2014/06/07 Javascript
jQuery实现手机号码输入提示功能实例
2015/04/30 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
详解Angular的数据显示优化处理
2016/12/26 Javascript
jQuery Ajax实现跨域请求
2017/01/21 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
2017/11/27 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
2018/12/29 jQuery
vue cli 3.x 项目部署到 github pages的方法
2019/04/17 Javascript
浅谈Javascript中的对象和继承
2019/04/19 Javascript
简单了解three.js 着色器材质
2020/08/03 Javascript
[05:26]2014DOTA2西雅图国际邀请赛 iG战队巡礼
2014/07/07 DOTA
用Python和MD5实现网站挂马检测程序
2014/03/13 Python
在Python中使用列表生成式的教程
2015/04/27 Python
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
对numpy中二进制格式的数据存储与读取方法详解
2018/11/01 Python
jupyter notebook读取/导出文件/图片实例
2020/04/16 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
python获取本周、上周、本月、上月及本季的时间代码实例
2020/09/08 Python
求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")
2015/09/11 面试题
大学生个人求职信范文
2013/09/21 职场文书
《十六年前的回忆》教学反思
2014/02/14 职场文书
社区消防工作实施方案
2014/03/21 职场文书
十佳家长事迹材料
2014/08/26 职场文书
介绍信范文
2015/01/31 职场文书
春节随笔
2015/08/15 职场文书
Android自定义双向滑动控件
2022/04/19 Java/Android