当前位置:网站首页>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
边栏推荐
- 短视频系统源码,点击屏幕空白处键盘不自动收起
- Concurrent optimization summary
- In Linux, I call odspcmd to query the database information. How to output silently is to only output values. Don't do this
- Attack and defense world misc advanced grace-50
- Ascendex launched Walken (WLKN) - an excellent and leading "walk to earn" game
- Common shortcut keys for hbuilder x
- Mysql root 账号如何重置密码
- Summary of index operations in mongodb
- Domestic database chaos
- leetcode 72. Edit distance edit distance (medium)
猜你喜欢

Concurrent network modular reading notes transfer

串口数据帧

Attack and defense world misc advanced area ditf

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

Ascendex launched Walken (WLKN) - an excellent and leading "walk to earn" game

Locust性能测试 —— 环境搭建及使用

攻防世界 MISC 进阶区 hong

Logo special training camp section III initial creative techniques

PMO: compare the sample efficiency of 25 molecular optimization methods

国产数据库乱象
随机推荐
国产数据库乱象
页面关闭前,如何发送一个可靠请求
With this PDF, we finally got offers from eight major manufacturers, including Alibaba, bytek and Baidu
Deployment of JVM sandbox repeater
攻防世界 MISC 进阶区 Ditf
【愚公系列】2022年7月 Go教学课程 003-IDE的安装和基本使用
[acwing] solution of the 58th weekly match
质量体系建设之路的分分合合
LOGO特训营 第四节 字体设计的重要性
Attack and Defense World MISC Advanced Area Erik baleog and Olaf
Scala download and configuration
Logo special training camp section 1 Identification logo and logo design ideas
繁华落尽、物是人非:个人站长该何去何从
LOGO特训营 第三节 首字母创意手法
odps 中 对表进行了一次备份,为什么在元数据库查m_table 时,两张表的逻辑大小不一致,但数
[Yugong series] go teaching course 003-ide installation and basic use in July 2022
集群的概述与定义,一看就会
Play with grpc - go deep into concepts and principles
好用app推荐:扫描二维码、扫描条形码并查看历史
Force buckle 3_ 383. Ransom letter