惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
阮一峰的网络日志
阮一峰的网络日志
A
About on SuperTechFans
大猫的无限游戏
大猫的无限游戏
Engineering at Meta
Engineering at Meta
V
Visual Studio Blog
Martin Fowler
Martin Fowler
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 叶小钗
I
InfoQ
B
Blog RSS Feed
aimingoo的专栏
aimingoo的专栏
Y
Y Combinator Blog
Blog — PlanetScale
Blog — PlanetScale
IT之家
IT之家
P
Proofpoint News Feed
WordPress大学
WordPress大学
小众软件
小众软件
B
Blog
MongoDB | Blog
MongoDB | Blog
人人都是产品经理
人人都是产品经理
量子位
Hugging Face - Blog
Hugging Face - Blog
月光博客
月光博客

eallion's Blog

春假清明自驾游 Ubuntu 25.10 安装和配置 秋假 彩礼 2025 博客变化 预制菜 联邦礼仪之一 重拾写博客的乐趣 少儿 TED - 时间管理大师 n8n 之同步博客到 Mastodon n8n 之备份 Mastodon 嘟文 如何备份 Mastodon Docker 部署 Mastodon NAS 折腾记 Windows 11 安装软件 博客排版 - 挤压中文标点符号 Hugo 博客集成 Mastodon 独立博客自省问卷 15 题 Chrome 插件更新:网址净化器 在 Hugo 中使用 Shiki 炒菜万能公式 uBlacklist 订阅合集 读《中文互联网正在加速崩塌》 CSS 和 JS 实现博客热力图 受灾小记 那,他吃什么?! Mastodon 同步到 Memos Hugo 外部链接跳转提示页面 联邦宇宙及 Mastodon 简介 2024 博客变化
判断手机 UA
Charles Chin · 2015-01-13 · via eallion's Blog

现在的网页都会优先考虑兼容手机端,但难免有些样式或者有些排版不能完美兼容,或者有些页面只需要在手机端显示,这时候就需要对访问设备的 UA 进行判断,再跳转或者调用不同的模板和 CSS。

<?php
$useragent=$_SERVER ['HTTP_USER_AGENT'];
if (preg_match ('/android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip (hone|od)|iris|kindle|lge |maemo|meego.+mobile|midp|mmp|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|phone)|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 (di|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)))
header ('Location: http://m.eallion.com');
?>

下面的代码是 JS 判断代码(两者二选一即可),
首先在 </head> 之前插入:

<script type="text/javascript" src="fbsj.js"></script>

再把 JS 放在根文件夹,或者其他文件夹(注意路径)。

(function (a,b){if (/android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip (hone|od)|iris|kindle|lge |maemo|meego.+mobile|midp|mmp|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|phone)|xda|xiino/i.test (a)||/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 (di|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.test (a.substr (0,4))) window.location=b})(navigator.userAgent||navigator.vendor||window.opera,'http://m.eallion.com');