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 读取文件的正确方法
Apr 29 PHP
PHP中读写文件实现代码
Oct 20 PHP
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
Jun 25 PHP
php连接函数implode与分割explode的深入解析
Jun 26 PHP
PHP实现模仿socket请求返回页面的方法
Nov 04 PHP
codeigniter显示所有脚本执行时间的方法
Mar 21 PHP
PHP内核探索之变量
Dec 22 PHP
PHP图形操作之Jpgraph学习笔记
Dec 25 PHP
基于laravel制作APP接口(API)
Mar 15 PHP
php求数组全排列,元素所有组合的方法
May 05 PHP
PHP大神的十大优良习惯
Sep 14 PHP
php装饰者模式简单应用案例分析
Oct 23 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/14 PHP
php实现的获取网站备案信息查询代码(360)
2013/09/23 PHP
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
2014/02/18 PHP
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
2015/10/22 PHP
PHP实现导出带样式的Excel
2016/08/28 PHP
基于PHPexecl类生成复杂的报表表头示例
2016/10/14 PHP
Jquery中Ajax 缓存带来的影响的解决方法
2011/05/19 Javascript
jquery中.add()的使用分析
2013/04/26 Javascript
Javascript中判断变量是数组还是对象(array还是object)
2013/08/14 Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
2014/10/08 Javascript
JavaScript阻止事件冒泡示例分享
2014/12/28 Javascript
JS实现光滑展开合拢的菜单效果代码
2015/09/16 Javascript
纯JS打造网页中checkbox和radio的美化效果
2016/10/13 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
jQuery实现拖拽可编辑模块功能代码
2017/01/12 Javascript
使用nodejs爬取前程无忧前端技能排行
2017/05/06 NodeJs
Angular X中使用ngrx的方法详解(附源码)
2017/07/10 Javascript
React组件内事件传参实现tab切换的示例代码
2018/07/04 Javascript
使用vue2.0创建的项目的步骤方法
2018/09/25 Javascript
微信小程序实现写入读取缓存详解
2019/08/30 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
Python fileinput模块使用实例
2015/05/28 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
2019/02/22 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
2020/04/24 Python
CSS3 实现弹幕的示例代码
2017/08/07 HTML / CSS
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
2013/01/06 HTML / CSS
What's the difference between deep copy and shallow copy? (深拷贝与浅拷贝有什么区别)
2015/11/10 面试题
调研座谈会发言材料
2014/08/23 职场文书
规范化管理年活动总结
2014/08/29 职场文书
2014年效能监察工作总结
2014/11/21 职场文书
2015新学期校长寄语(3篇)
2015/03/25 职场文书
2015年社会治安综合治理工作总结
2015/04/10 职场文书
毕业证明书
2015/06/19 职场文书
初中同学会致辞
2015/08/01 职场文书
fastdfs+nginx集群搭建的实现
2021/03/31 Servers