当前位置:网站首页>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
边栏推荐
- 都说软件测试很简单有手就行,但为何仍有这么多劝退的?
- MySQL storage data encryption
- 页面关闭前,如何发送一个可靠请求
- Jvm-Sandbox-Repeater的部署
- 繁华落尽、物是人非:个人站长该何去何从
- PHP short video source code, thumb animation will float when you like it
- Close system call analysis - Performance Optimization
- 如何实现轻松管理1500万员工?
- 高中物理:直线运动
- Prosperity is exhausted, things are right and people are wrong: where should personal webmasters go
猜你喜欢

With this PDF, we finally got offers from eight major manufacturers, including Alibaba, bytek and Baidu

SPSS installation and activation tutorial (including network disk link)

Li Kou 98: verify binary search tree
![[Yugong series] go teaching course 003-ide installation and basic use in July 2022](/img/65/b36ca239e06a67c01d1eb0b4648f71.png)
[Yugong series] go teaching course 003-ide installation and basic use in July 2022

Challenges faced by virtual human industry

LOGO特训营 第五节 字体结构与设计常用技法

Tiktok actual combat ~ the number of comments is updated synchronously

攻防世界 MISC 进阶区 Ditf

堆排序代码详解

Common open source codeless testing tools
随机推荐
Alibaba launched a new brand "Lingyang" and is committed to becoming a "digital leader"
Why is Dameng data called the "first share" of domestic databases?
Ascendex launched Walken (WLKN) - an excellent and leading "walk to earn" game
UML diagram memory skills
都说软件测试很简单有手就行,但为何仍有这么多劝退的?
Taobao commodity review API interface (item_review get Taobao commodity review API interface), tmall commodity review API interface
NFT Insider #64:电商巨头eBay提交NFT相关商标申请,毕马威将在Web3和元宇宙中投入3000万美元
质量体系建设之路的分分合合
9 - 类
Interview essential leetcode linked list algorithm question summary, whole process dry goods!
啃下大骨头——排序(二)
leetcode 72. Edit Distance 编辑距离(中等)
Logo special training camp section III initial creative techniques
我在linux里面 通过调用odspcmd 查询数据库信息 怎么静默输出 就是只输出值 不要这个
Sqlserver encrypts and decrypts data
Scala download and configuration
It is said that software testing is very simple, but why are there so many dissuasions?
Practice and principle of PostgreSQL join
Logo special training camp Section IV importance of font design
微服务--开篇