《CMS系统:phpcms v9添加百度自动推送JS代码并解决重复推送问题》要点:
本文介绍了CMS系统:phpcms v9添加百度自动推送JS代码并解决重复推送问题,希望对您有用。如果有疑问,可以联系我们。
相关主题:PHPCMS教程
- function baidu_check_record($url){
- if(strpos($url,'.html')){
- $baidu_cache = getcache('baidurecord','baidu');
- $baidu_cache=unserialize($baidu_cache);
- $pathurl=str_replace(APP_PATH,'',$url);
- $array=explode('-',$pathurl);
- if($array[1] && $array[2] && $baidu_cache[$array[1].'-'.$array[2]] == 1){
- return 1;
- }else{
- $url='http://www.baidu.com/s?wd='.$url;
- $curl=curl_init();
- curl_setopt($curl,CURLOPT_URL,$url);
- curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
- curl_setopt($curl, CURLOPT_ENCODING, 'gzip');
- $rsurl=curl_exec($curl);
- curl_close($curl);
- //如果抓取到的百度结果中不存在【提交网址】这个关键词,则认为该页面已被百度收录
- if(!preg_match_all('/提交网址/i',$rsurl,$match1) && preg_match_all('/百度为您找到相关结果/i',$rsurl,$match2)){
- $baidu_cache[$array[1].'-'.$array[2]]=1;
- $baidu_cache=serialize($baidu_cache);
- setcache('baidurecord',$baidu_cache,'baidu');
- return 1;
- } else {
- return 0;
- }
- }
- }
- }
- function bdPushData($catid,$id) {
- if ($_SERVER['HTTPS'] != "on") {
- $currentUrl = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"];
- } else {
- $currentUrl = 'https://'.$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"];
- }
- if(!$catid || !$id) return;
- $get_url=go($catid,$id);
- //判断是否是未收录页面,并且当前页面是否等于正规url地址(get_premalink)
- if(baidu_check_record($get_url) == 0 && $currentUrl == $get_url) {
- echo "<script>(function(){
- var bp = document.createElement('script');
- var curProtocol = window.location.protocol.split(':')[0];
- if (curProtocol === 'https') {
- bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
- } else {
- bp.src = 'http://push.zhanzhang.baidu.com/push.js';
- }
- var s = document.getElementsByTagName('script')[0];
- s.parentNode.insertBefore(bp, s);
- })();</script>";
- }
- }
在页面底部加上如下代码:
CMS技巧
工作原理是文章加载时,会再百度搜索当前文章的url地址,如果百度未收录,查询结果中会匹配到“没有找到该URl.您可以直接访问”或"很抱歉,没有找到与"文字内容.当代码确认页面已经收录时,将会把文章的栏目catid和文章id保存成数组,存储到缓存,方便下次直接获取来判断是否已经推送过了.
百度自动推送服务对象及原理
JS链接推送代码以网页为最小对象,服务于全平台多终端,PC站和移动站均可使用.
安装代码的页面在任意平台(浏览器、微信、微博)被加载时,页面链接会被第一时间推送给百度,从而提高站点新内容的发现速度.CMS技巧
CMS技巧
转载请注明本页网址:
http://www.vephp.com/jiaocheng/5761.html