本文实例讲述了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 ( ' ' , '' , $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程序设计有所帮助。