本文将介绍php检测特定浏览器UA,并显示特定界面提示外部打开网址。
前言:很遗憾,短网址被人玩脱了,导致本站域名被某信/某Q拦截,某Q申诉没看到具体的拦截的原因,某信申诉看到了原因(诱导…),给出的网址是短网址生成的,感觉有些冤。于是删除该网址,申诉还要答题/填个人信息/网站信息,有些麻烦,但为了域名还是做了,系统提示三天内给出答复,结果一天就通过了。
于是想了想如何避免,这样吧:检测浏览器是否是某信/某Q,然后提示外部打开,查了点资料,思路实现了。
一、建立提示模板
提示外部浏览器打开模板(来自星辰短域:https://github.com/soxft/UrlShorting)
大家可以下载下来修改一下,建立一个php文件,修改内容如下:
<?php
$dwz='http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];//获取当前网址
?>
<a data-clipboard-text="<?php echo $dwz ?>" class="app-download-btn">点此复制本站网址</a>
二、添加UA监听函数
<?php
//判断是否为某信浏览器
function cm_isweixin(){
if(array_key_exists('HTTP_USER_AGENT',$_SERVER)){
if(strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false){
return true;
}
}
return false;
}
//判断是否为某Q浏览器
function cm_qqbrowser(){
if(array_key_exists('HTTP_USER_AGENT',$_SERVER)){
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'mqqbrowser') !== false){
return true;
}
}
return false;
}
if(cm_isweixin()||cm_qqbrowser()){
include "br.php";
}
else{
...//其他浏览器显示的内容
}
三、测试上线
如果你的域名已红,则直接在浏览器内修改UA测试,测试UA比如:
某Q内置:
Mozilla/5.0 (Linux; Android 5.1; OPPO R9tm Build/LMY47I; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043128 Safari/537.36 V1_AND_SQ_7.0.0_676_YYB_D PA QQ/7.0.0.3135 NetType/4G WebP/0.3.0 Pixel/1080
某信内置:
Mozilla/5.0 (Linux; Android 5.1; OPPO R9tm Build/LMY47I; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043220 Safari/537.36 MicroMessenger/6.5.7.1041 NetType/4G Language/zh_CN
电脑Edge浏览器安装插件:User-Agent Switcher and Manager,更改UA。
四、参考资料
1、博客园-PHP中获取当前页面的完整URL
2、卢雨高技术博客-PHP判断设备是否为微信浏览器或QQ浏览器
3、CSDN-QQ、微信、QQ浏览器UserAgent
偷了。
拿走拿走,别客气