当前位置:网站首页>The new version judges the code of PC and mobile terminal, the mobile terminal jumps to the mobile terminal, and the PC jumps to the latest valid code of PC terminal
The new version judges the code of PC and mobile terminal, the mobile terminal jumps to the mobile terminal, and the PC jumps to the latest valid code of PC terminal
2022-07-04 22:39:00 【~ central qianche ~】
Cause due to songshu.youyacao.com The official website accidentally found that the mobile version of access is also pc edition , So the urgent discussion and internal team members began to check , There is nothing wrong with the judgment code , Due to the failure of the judgment code
Get the following solution :

The original invalid code :
function isMobile()
{
// If there is HTTP_X_WAP_PROFILE It must be a mobile device
if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
return true;
// This article is taken from TPM Intelligent switching template engine , fit TPM Development
if (isset ($_SERVER['HTTP_CLIENT']) && 'PhoneClient' == $_SERVER['HTTP_CLIENT'])
return true;
// If via The information contains wap It must be a mobile device , Some services will block this information
if (isset ($_SERVER['HTTP_VIA']))
// Cannot find for flase, Otherwise true
return stristr($_SERVER['HTTP_VIA'], 'wap') ? true : false;
// Judge the client mark sent by the mobile phone , Compatibility needs to be improved
if (isset ($_SERVER['HTTP_USER_AGENT'])) {
$clientkeywords = array(
'nokia', 'sony', 'ericsson', 'mot', 'samsung', 'htc', 'sgh', 'lg', 'sharp', 'sie-', 'philips', 'panasonic', 'alcatel', 'lenovo', 'iphone', 'ipod', 'blackberry', 'meizu', 'android', 'netfront', 'symbian', 'ucweb', 'windowsce', 'palm', 'operamini', 'operamobi', 'openwave', 'nexusone', 'cldc', 'midp', 'wap', 'mobile'
);
// from HTTP_USER_AGENT Search for the key words of mobile browser
if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {
return true;
}
}
// The law of agreement , Because it may not be accurate , Put it to the final judgment
if (isset ($_SERVER['HTTP_ACCEPT'])) {
// If it only supports wml And does not support html That must be a mobile device
// If the support wml and html however wml stay html Before it was mobile devices
if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html')))) {
return true;
}
}
return false;
}
// Change it to pc
// define('VIEW_PATH', '../template/pc/');
// Change to mobile phone +pc
if (isMobile()) {
define('VIEW_PATH', '../template/mobile/');
} else {
define('VIEW_PATH', '../template/pc/');
}
// [ Application entry file ]
define('TIME', date("Y-m-d H:i:s", time()));
// Define the application directory
define('APP_PATH', __DIR__ . '/../application/');
// Load the framework boot file
require __DIR__ . '/../thinkphp/start.php';
Recently available code after modification :
$useragent=$_SERVER['HTTP_USER_AGENT'];
if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4))) {
define('VIEW_PATH', '../template/mobile/');
} else {
define('VIEW_PATH', '../template/pc/');
}
// header('Location: http://detectmobilebrowser.com/mobile');
// [ Application entry file ]
define('TIME', date("Y-m-d H:i:s", time()));
// Define the application directory
define('APP_PATH', __DIR__ . '/../application/');
// Load the framework boot file
require __DIR__ . '/../thinkphp/start.php';
It can be used directly
边栏推荐
- SQL中MAX与GREATEST的区别
- leetcode 72. Edit distance edit distance (medium)
- Alibaba launched a new brand "Lingyang" and is committed to becoming a "digital leader"
- LOGO特训营 第四节 字体设计的重要性
- 串口数据帧
- MD5 tool class
- [the 2023 autumn recruitment of MIHA tour] open [the only exclusive internal push code of school recruitment eytuc]
- Lost in the lock world of MySQL
- leetcode 72. Edit distance edit distance (medium)
- 新版判断PC和手机端代码,手机端跳转手机端,PC跳转PC端最新有效代码
猜你喜欢

It is said that software testing is very simple, but why are there so many dissuasions?

The Sandbox 和数字好莱坞达成合作,通过人力资源开发加速创作者经济的发展

How to transfer to software testing, one of the high paying jobs in the Internet? (software testing learning roadmap attached)
![[acwing] solution of the 58th weekly match](/img/e3/fd2c0ffbc9c7ca8a71875882d6c71b.png)
[acwing] solution of the 58th weekly match

蓝队攻防演练中的三段作战
Redis sentinel simply looks at the trade-offs between distributed high availability and consistency

SPSS安装激活教程(包含网盘链接)

LOGO特训营 第二节 文字与图形的搭配关系

Hit the core in the advanced area of misc in the attack and defense world

攻防世界 MISC 进阶区 Ditf
随机推荐
集群的概述与定义,一看就会
Attack and defense world misc advanced grace-50
Logo special training camp Section IV importance of font design
Now MySQL cdc2.1 is parsing the datetime class with a value of 0000-00-00 00:00:00
md5工具类
Nat. Commun.| Machine learning jointly optimizes the affinity and specificity of mutagenic therapeutic antibodies
Interview essential leetcode linked list algorithm question summary, whole process dry goods!
记录:关于Win10系统中Microsoft Edge上的网页如何滚动截屏?
PHP short video source code, thumb animation will float when you like it
Summary of index operations in mongodb
将QA引入软件开发生命周期是工程师要遵循的最佳实践
LOGO特训营 第三节 首字母创意手法
不同环境相同配置项的内容如何diff差异?
PostgreSQLSQL高级技巧透视表
Force buckle 3_ 383. Ransom letter
UML diagram memory skills
Google Earth Engine(GEE)——以MODIS/006/MCD19A2为例批量下载逐天AOD数据逐天的均值、最大值、最小值、标准差、方差统计分析和CSV下载(北京市各区为例)
Microservices -- Opening
我在linux里面 通过调用odspcmd 查询数据库信息 怎么静默输出 就是只输出值 不要这个
Test will: bug classification and promotion solution