所有的站长基本上都很关注自己网页的收录量。但是每次都需要去工具网站查询。
所以我写了这个功能。当然 我也不知道百度能让用多久。
效果如三叔博客的侧边栏:
这样我在自己的博客首页就知道这个信息了。
具体的操作如下(基于wecenter问答框架。其他框架请自行修改):
1. 在/app/explore/main.php的 index_action里追加代码。
if (TPL::is_output('block/sidebar_baidupcshoulu.tpl.htm', 'explore/index')) { $count = '未知'; $result_cache_key = 'baidupcshoulu'.date("Y-m-d"); if (!$count = AWS_APP::cache()->get($result_cache_key)){ $res = curl_get_contents('https://www.baidu.com/s?wd=site%3Awww.sanshu.cn&rsv_spt=1&rsv_iqid=0xe106800100008920&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=ib&rsv_n=2&rsv_sug3=1&rsv_sug2=0&rsv_btype=i&inputT=438&rsv_sug4=438', $timeout = 30); preg_match_all('/<b[^>]+style[^>]+>(.*)<\/b>/', $res, $match); $count = $match[1][0]; AWS_APP::cache()->set($result_cache_key, $count, 60*60*12); //缓存时间是秒 } TPL::assign('baidushoulu', $count); }
这里主要做了三个操作:
首页又没有加载统计模板
缓存里有没有缓存数量(这个最多每天统计一次即可)
如果缓存没有 就请求百度 并且获取收录数量,最后放到缓存里。记得将百度网址里的 sanshu.cn换成自己的域名
然后。
创建模板 /views/default/block/sidebar_zanzhushang.tpl.htm
里面的代码自己写(可以复制其他控件的代码,自己改下)。
三叔的是:
<div class="fly-panel"> <div class="fly-panel-title"> 今日百度页面总收录:</div> <div class="fly-panel-main" style="font-weight: 900;color: #655cec;"> <?php echo $this->baidushoulu; ?> </div> </div>
最后,在首页模板 /views/explore/index.tpl.htm 里引用收录组件.具体位置自己组织哈。
最后大功告成!
如有更好的解决方案,请赐教。