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初学者头疼问题总结
Jul 08 PHP
一步一步学习PHP(8) php 数组
Mar 05 PHP
一些php技巧与注意事项分析
Feb 03 PHP
PHP数组操作汇总 php数组的使用技巧
Jul 17 PHP
PHP分页详细讲解(有实例)
Oct 30 PHP
PHP fastcgi模式上传大文件(大约有300多K)报错
Sep 28 PHP
php将12小时制转换成24小时制的方法
Mar 31 PHP
老生常谈文本文件和二进制文件的区别
Feb 27 PHP
PHP计算近1年的所有月份
Mar 13 PHP
PHP的PDO大对象(LOBs)
Jan 27 PHP
PHP中散列密码的安全性分析
Jul 26 PHP
php7 错误处理机制修改实例分析
May 25 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
开源SNS系统-ThinkSNS
2008/05/18 PHP
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
php批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
thinkPHP中volist标签用法示例
2016/12/06 PHP
PHP基于GD库实现的生成图片缩略图函数示例
2017/07/05 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
js静态方法与实例方法分析
2011/07/04 Javascript
Javascript开发之三数组对象实例介绍
2012/11/12 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
2014/02/17 Javascript
EasyUI中实现form表单提交的示例分享
2015/03/01 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
2016/08/29 Javascript
Angular2学习教程之TemplateRef和ViewContainerRef详解
2017/05/25 Javascript
通俗解释JavaScript正则表达式快速记忆
2017/08/23 Javascript
EL表达式截取字符串的函数说明
2017/09/22 Javascript
javascript中UMD规范的代码推演
2018/08/29 Javascript
如何提升vue.js中大型数据的性能
2019/06/21 Javascript
js实现开关灯效果
2020/03/30 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
2020/11/04 Javascript
JavaScript this关键字的深入详解
2021/01/14 Javascript
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
python ElementTree 基本读操作示例
2009/04/09 Python
详解python中字典的循环遍历的两种方式
2017/02/07 Python
Django视图和URL配置详解
2018/01/31 Python
eclipse创建python项目步骤详解
2019/05/10 Python
Python图像处理库PIL中图像格式转换的实现
2020/02/26 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
Matplotlib 绘制饼图解决文字重叠的方法
2020/07/24 Python
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
介绍一下gcc特性
2012/01/20 面试题
DOM和JQuery对象有什么区别
2016/11/11 面试题
食品仓管员岗位职责
2015/04/01 职场文书
纪念建国70周年演讲稿
2019/07/19 职场文书
Oracle安装TNS_ADMIN环境变量设置参考
2021/11/01 Oracle
Win11 S Mode版本泄露 正式上线后叫做Windows 11 SE
2021/11/21 数码科技