Emlog判断用户来自什么搜索引擎代码插件
发布时间: 作者:冬镜SEO
今天冬镜在Young杨小杰博客看到搜索引擎来路提醒小窗,个人感觉还是很新颖,如果大家需要可以自己去看看效果,这个只能稍微提醒一下大家,seo是不太适合挂这种弹窗的。
<?php /** * 获取网站来路并分析 * @author Youngxj <blog@youngxj.cn> * @time 2018年6月27日 * @param string $referers 自定义ua * @return strting/bool 输出获取到的来路 */ function get_referer($referers=''){ // 更改为自己的网址 // 避免来路重复 $localhost = 'www.youngxj.cn'; /*获取网站来路*/ $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: 'https://ww2.sinaimg.cn/large/005BYqpgly1fsnpxsctd7j305k05kwec.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"></i> 欢迎来自<?php echo get_referer();?>的朋友' ,content: '<i class="layui-icon layui-icon-group"></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 }?>
注意:如果桌面浏览器不允许Notification通知权限或者不支持Notification就会使用layerui,当桌面浏览器允许Notification通知权限后就会使用Notification。
代码里面用到的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、最后使用搜索引擎或者友情链接进行测试来路测试。
二、emlog搜索引擎来路交互插件
搜索引擎来路插件优势:
1、增加搜索引擎关键词正则(蹩脚正则处理)
2、修改弹窗策略为来访即弹窗
3、添加cookie控制一个用户只弹一次
4、添加layerjs开关及自动退出时间设置
搜索引擎来路插件安装教程:
1、解压文件上传到content/plugins/目录下(也可以后台直接在线安装)
2、后台插件管理,启动插件(如下图)
3、设置判断搜索引擎来路插件(如下图),提示一下大家一般默认就可以。
4、大家测试用的百度搜索引擎搜索进入到我的网站,右下角自动提示弹窗(如下图)
好了如果大家还有什么不懂的,可以联系冬镜或下方评论区留言交流。
原创:Young杨小杰博客
文章分类: Emlog