服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - PHP教程 - PHP实现QQ空间自动回复说说的方法

PHP实现QQ空间自动回复说说的方法

2020-12-04 10:56QQ地带 PHP教程

这篇文章主要介绍了PHP实现QQ空间自动回复说说的方法,涉及php基于curl调用自动回复接口的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了PHP实现QQ空间自动回复说说的方法。分享给大家供大家参考,具体如下:

 
?
1
 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?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('&#10;', '', $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程序设计有所帮助。

延伸 · 阅读

精彩推荐