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