在侧边栏里追加网站的被收录数量

wecenter php 文章 2021-06-10 13:00 38 0 全屏看文

所有的站长基本上都很关注自己网页的收录量。但是每次都需要去工具网站查询。

所以我写了这个功能。当然 我也不知道百度能让用多久。

效果如三叔博客的侧边栏:

https://wenda.wecenter.com/uploads/article/20210610/957559ef269aaf4220d0db9482e4f020.png

这样我在自己的博客首页就知道这个信息了。


具体的操作如下(基于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);
}



这里主要做了三个操作:

  1. 首页又没有加载统计模板

  2. 缓存里有没有缓存数量(这个最多每天统计一次即可)

  3. 如果缓存没有 就请求百度 并且获取收录数量,最后放到缓存里。记得将百度网址里的 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 里引用收录组件.具体位置自己组织哈。

最后大功告成!

如有更好的解决方案,请赐教。


-EOF-