鱼柒 发表于 2018-8-6 20:30:46

搜索引擎来路提醒小窗可广泛应用

本帖最后由 鱼柒 于 2018-8-6 20:41 编辑

源码:<?php
function get_referer($referers=''){
      // 更改为自己的网址
      // 避免来路重复
      $localhost = 'https://sec.bducds.com';
      /*获取网站来路*/
      $referer = $referers ? $referers : $_SERVER['HTTP_REFERER'];
      if(!$referer){
                return false;
      }

      /*获取网站host*/
      $str = parse_url($referer);
      if (!$str['host']||$str['host']==$localhost) {
                return false;
      }
      $url = $str['host'];

      /*关键词判断类型*/
      if(strpos($url,'baidu') !== false){
                $url_str = '百度搜索';
      }elseif (strpos($url,'sogou') !== false) {
                $url_str = '搜狗搜索';
      }elseif (strpos($url,'sm') !== false) {
                $url_str = '神马搜索';
      }elseif (strpos($url,'bing') !== false) {
                $url_str = '必应搜索';
      }elseif (strpos($url,'google') !== false) {
                $url_str = '谷歌搜索';
      }elseif (strpos($url,'so') !== false) {
                $url_str = '360搜索';
      }elseif (strpos($url,'easou') !== false) {
                $url_str = '宜搜搜索';
      }elseif (strpos($url,'yahoo') !== false) {
                $url_str = '雅虎搜索';
      }else{
                /*如果以上都找不到则使用来路域名并截取字数*/
                if (strlen($url)>5) $url_str=substr($url,0,10) . '...';
      }
      return $url_str;
}
?>
<script src="layui/layui.js"></script>//这里需要引入
<link rel="stylesheet" type="text/css" href="layui/css/layui.css">//这个也需要引入
<?php if(get_referer()){?>
<script>
      var popNotice = function() {
                //获取用户授权状态
                if (Notification.permission == "granted") {
                        var notification = new Notification("欢迎来自<?php echo get_referer();?>的朋友", {
                //很明显这是正文
                body: '若当前文章未能解决您的问题,您可以先尝试站内搜索,当然也可以给我留言喔(^_^)!',
                //这是图标
                icon: '<blockquote>//ws3.sinaimg.cn/large/005BYqpgly1fu080nvzr9j308c08cajy.jpg'
            });
            //消息被点击事件
            notification.onclick = function() {
                    /*window.open("<?php echo $_SERVER['HTTP_REFERER'];?>");*/
            };
                        //消息被关闭事件
                        notification.onclose= function() {
                                notification.close();      
                        };
                        //消息出现错误事件
                        notification.onerror= function() {
                                alert('上帝也不知道发生了什么');
                                notification.close();      
                        };
                }      
        };

        if (window.Notification) {
                if (Notification.permission == "granted") {
                        popNotice();

                }else if( Notification.permission != "denied"){
                        Notification.requestPermission(function (permission) {
                                popNotice();
                        });
                }
        } else {
                echo_layer();
        }
        function echo_layer(){
                layui.define(['layer', 'form'], function(exports){
                        var layer = layui.layer
                        ,form = layui.form;

                        layer.open({
                                title: '<i class="layui-icon layui-icon-face-smile" style="color: #1E9FFF;"></i> 欢迎来自<?php echo get_referer();?>的朋友'
                                ,content: '<i class="layui-icon layui-icon-group" style="color: green;"></i>若当前文章未能解决您的问题,您可以先尝试站内搜索,当然也可以给我留言喔(^_^)!'
                                ,offset: 'rb'
                                ,time:5000
                                ,anim:2
                                ,moveOut: true
                                ,maxmin: true
                                ,shade: 0
                                ,btn: ['确认', '关闭']
                                ,yes: function(index, layero){
                                        /*window.open("<?php echo $_SERVER['HTTP_REFERER'];?>");*/
                                }
                                ,btn2: function(index, layero){
                                }
                                ,cancel: function(){
                                }
                        });

                        exports('index', {});
                });   
               
        }
        Notification.requestPermission().then(function(result) {
                if (result === 'denied') {
                        echo_layer();
                        console.log('许可不获批准。允许重试');
                        return;
                }
                if (result === 'default') {
                        echo_layer();
                        console.log('许可请求被驳回。');
                        return;
                }
        });
</script>
<?php }?>

中间用到的layui.js和layui.css打包好了里面有好几个文件自己找一下emlog如何引入这个?看下面
1、先把<?php function get_referer($referers=''){.....}?>整段函数复制到module.php

2、然后去header.php引入layui.js和layui.css

3、之后再把<?php if(get_referer()){?>....<?php }?>整段代码放到footer.php即可

4、最后使用搜索引擎或者友情链接进行测试来路测试

**** Hidden Message *****




页: [1]
查看完整版本: 搜索引擎来路提醒小窗可广泛应用