基于关键词给贴吧帖子进行自动加精置顶
前言
前几天giuem童鞋给我们做了一个贴吧云删帖的东西,我进行一个小小的修改,让他能贴吧自动加精置顶,虽然还不完善,但是勉强能用。
代码
<?php /* * 作者:Giuem * 博客地址:http://www.giuem.com/ * 转载请保留版权! */ header("Content-type: text/html; charset=utf-8"); $bduss = 'XVFSXl-Ti1KazJ6ajFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADZBFlQ2QRZUY';//吧务的BDUSS $kw = '无法诉说的吟荡';//目标贴吧 $keywords = '我爱吟荡|这个吧默默地9级了';//关键词 格式 关键词1|关键词2|关键词3|关键词4|关键词5|关键词6...... /***********************/ $forum = get_forum(); $fid = $forum['forum']['id']; foreach($forum['thread_list'] as $thread){ if(check_ad($thread['title'])){ if(del_thread($kw,$fid,$thread['tid'])) {echo "帖子加精:{$thread['tid']}成功<br />"; }else{ echo "帖子加精:{$thread['tid']}失败<br />";} break ; }elseif($thread['abstract']){ if(check_ad($thread['abstract'][0]['text'])){if(del_thread($kw,$fid,$thread['tid'])) {echo "删除帖子:{$thread['tid']}成功<br />"; }else{ echo "删除帖子:{$thread['tid']}失败<br />";}} } } function get_forum(){ global $kw; $data=array( '_client_id=wappc_1396611108603_817', '_client_type=2', '_client_version=5.7.0', '_phone_imei=642b43b58d21b7a5814e1fd41b08e2a6', 'from=tieba', "kw={$kw}", 'pn=1', 'q_type=2', 'rn=30', 'with_group=1'); $data=implode('&', $data).'&sign='.md5(implode('', $data).'tiebaclient!!!'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://c.tieba.baidu.com/c/f/frs/page'); curl_setopt($ch, CURLOPT_HTTPHEADER, array ('Content-Type: application/x-www-form-urlencoded')); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_TIMEOUT, 30); $re = json_decode(curl_exec($ch),true); curl_close($ch); return $re; } function get_tbs(){ global $bduss; $re=json_decode(fetch('http://tieba.baidu.com/dc/common/tbs','BDUSS='.$bduss),true); return $re['tbs']; } function fetch($url,$cookie=null,$postdata=null){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); if (!is_null($postdata)) curl_setopt($ch, CURLOPT_POSTFIELDS,$postdata); if (!is_null($cookie)) curl_setopt($ch, CURLOPT_COOKIE,$cookie); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 20); $re = curl_exec($ch); curl_close($ch); return $re; } function check_ad($content){ global $keywords; $preg = '/'.addslashes($keywords).'/i'; $res = preg_match($preg,$content); return $res; } function del_thread($kw,$fid,$tid){ global $bduss; $data = 'commit_fr=pb&ie=utf-8&tbs='.get_tbs()."&kw={$kw}&fid={$fid}&tid={$tid}"; $re = json_decode(fetch('http://tieba.baidu.com/f/commit/thread/good/add','BDUSS='.$bduss,$data),true); $re = json_decode(fetch('http://tieba.baidu.com/f/commit/thread/top/add','BDUSS='.$bduss,$data),true); return $re['no']==0; }
使用事项
因为代码只是粗略的添加一下,暂时只能匹配帖子标题,在我的设计里面是匹配帖子作者然后再匹配帖子标题关键词进行加精置顶操作的,所以暂时是不完善的
后语
PHP小白显示看代码能看懂一部分,要自己写代码还是有很大的困难,主要是用来给小说贴吧加精置顶的
-- 完 --
stristr(‘所有的id写在这’,$thread['author']['name_show'])
加在15行和18行的if中,用&连接你应该懂吧
@Giuem OK!啦啦啦