在侧边栏里追加网站的被收录数量
所有的站长基本上都很关注自己网页的收录量。但是每次都需要去工具网站查询。
所以我写了这个功能。当然 我也不知道百度能让用多久。
效果如三叔博客的侧边栏:
这样我在自己的博客首页就知道这个信息了。
具体的操作如下:
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('/]+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_baidupcshoulu.tpl.htm
里面的代码自己写(可以复制其他控件的代码,自己改下)。
三叔的是:
今日百度页面总收录:
baidushoulu; ?>
最后,在首页模板 /views/explore/index.tpl.htm 里引用收录组件.具体位置自己组织哈。
最后大功告成!
如有更好的解决方案,请赐教。
2021-06-10 13:03