最近看到了一个奖品很诱人的抢楼贴,于是萌生了做一个贴吧抢楼工具的想法。要达到抢楼的目的,第一步当然是获取当前帖子的楼层数,这样才能精准抢楼,在网上找了一圈,没找到相关代码,于是自己用PHP写了一个,试了一下效果还不错,因此果断分享出来!
- /********************************
- 获取贴吧指定帖子回复量的函数
- 编 写:mengkun
- 函数名:getFCount
- 输 入:帖子的tid
- 输 出:帖子的楼层数(最大支持3784)
- ********************************/
- function getFCount($tid)
- {
- $url ='http://tieba.baidu.com/mo/m?kz='. $tid .'&last=1'; //url地址
- $ch = curl_init($url); //初始化
- $header = array ("Content-Type: application/x-www-form-urlencoded");
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_REFERER, "http://tieba.baidu.com/mo/"); //伪造来源网址
- curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
- $output = curl_exec($ch);//执行并获取HTML文档内容
- curl_close($ch);//释放curl句柄
- //echo $output; //调试使用
- //echo "<a href='http://tieba.baidu.com/p/".$tid."?pn=9999999' target='_blank'>点击查看原帖效验结果</a><br>"; //调试使用
- if(preg_match('/<div> 您要浏览的贴子不存在<br\/>/',$output)) //被删除的帖子
- {
- return 0;
- }
- else
- {
- preg_match('/<div class="i">(\d*)楼\./isU',$output,$acceptNo);
- return $acceptNo[1];
- }
- }
- //使用示例:
- echo "帖子4836155247当前的楼层数为:".getFCount(4836155247);
我在帝吧随意找了一篇帖子,这篇帖子的tid为 4836155247 ,经过测试,完美无误
写在后面:
经过仔细测试,发现如果帖子的楼层数大于3784,会失效;
如果帖子最后几楼被抽了,也无法准确获取。
本文作者为mengkun,转载请注明。