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模板引擎SMARTY
Oct 09 PHP
在WIN98下以apache模块方式安装php
Oct 09 PHP
最简单的PHP程序--记数器
Oct 09 PHP
PHP初学者最感迷茫的问题小结
Mar 27 PHP
php tp验证表单与自动填充函数代码
Feb 22 PHP
PHP中extract()函数的定义和用法
Aug 17 PHP
解析PHP提交后跳转
Jun 23 PHP
PHP mysql与mysqli事务使用说明 分享
Aug 17 PHP
php汉字转拼音的示例
Feb 27 PHP
常用PHP封装分页工具类
Jan 14 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
Oct 30 PHP
PHP大文件切割上传并带进度条功能示例
Jul 01 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正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
2017/02/04 PHP
php实现文件管理与基础功能操作
2017/03/21 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
2019/06/13 PHP
php实现商城购物车的思路和源码分析
2020/07/23 PHP
通过location.replace禁止浏览器后退防止重复提交
2014/09/04 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
分享两款带遮罩的jQuery弹出框
2015/12/30 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
js实现简单的获取验证码按钮效果
2017/03/03 Javascript
详解js的作用域、预解析机制
2018/02/05 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
JS获取本地地址及天气的方法实例小结
2019/05/10 Javascript
python利用elaphe制作二维条形码实现代码
2012/05/25 Python
Python 常用 PEP8 编码规范详解
2017/01/22 Python
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
python中ASCII码和字符的转换方法
2018/07/09 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
python中的反斜杠问题深入讲解
2019/08/12 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
python网络编程:socketserver的基本使用方法实例分析
2020/04/09 Python
python中如何使用虚拟环境
2020/10/14 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
意大利宠物用品购物网站:Bauzaar
2018/09/15 全球购物
Jar包的作用是什么
2014/03/30 面试题
教师自我鉴定范文
2013/11/10 职场文书
《两只鸟蛋》教学反思
2014/02/10 职场文书
开学典礼演讲稿
2014/05/23 职场文书
教师师德师风自我剖析材料
2014/09/29 职场文书
租赁协议书
2015/01/27 职场文书
2016年“5.12”国际护士节活动总结
2016/04/06 职场文书
2021年pycharm的最新安装教程及基本使用图文详解
2021/04/03 Python
详解python的内存分配机制
2021/05/10 Python
SpringCloud的JPA连接PostgreSql的教程
2021/06/26 Java/Android
聊聊CSS粘性定位sticky案例解析
2022/06/01 HTML / CSS