视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
php如何实现手机适配跳转页面
2020-11-02 18:28:42 责编:小采
文档


php实现手机跳转页面的方法:首先打开“header.php”文件;然后在顶部添加代码为“$agent = $_SERVER['HTTP_USER_AGENT'];”;最后保存修改即可。

推荐:《PHP视频教程》

PHP网站手机适配跳转到相对应的页面

如果你有来自手机界面的访问者,你很可能需要将他们引导至一个不同的页面,一个特别为手机浏览器优化的界面。

1.在页面头部添加判断

通过PHP和浏览器头信息,我们可以轻松地实现将手机用户转向经过专门设计的WAP界面。我恰好使用了WP-T-WAP插件实现了界面的WAP化,WAP浏览的地址是http://mkaifa.com/wap。(你可以尝试浏览这个地址,它可以在电脑上被打开。真抱歉,我现在用的是MobilePress,没有演示了,MobilePress可以自动判断访问者的浏览器。)

我希望手机访客在打开http://mkaifa.com/地址时,自动导向http://mkaifa.com/wap。怎么办呢?

答案非常简单。

打开header.php文件。在第一行插入以下代码:

< ?php
$agent = $_SERVER['HTTP_USER_AGENT'];
if(strpos($agent,"comFront") || strpos($agent,"iPhone") || strpos($agent,"MIDP-2.0") || strpos($agent,"Opera Mini") || strpos($agent,"UCWEB") || strpos($agent,"Android") || strpos($agent,"Windows CE") || strpos($agent,"SymbianOS"))
header("Location:http://mkaifa.com/wap");
?>

这段代码的含义是,当浏览器返回的UA信息为Opera Mini、UCWEB等内容时,将页面转向http://mkaifa.com/wap。

1.1 补充:增加手机浏览器的跳转提示

当你使用上面的方法设置跳转时,可能会遇到这种状况:手机访问者直接访问类似http://mkaifa.com/archive/xxx的子页面,而不是首页。这时,改判断语句仍然会执行命令,将手机访问者引导至手机界面的首页,使访客无法获取想要的信息。

怎么办呢?

你可以在这段语句之外再加入一个判断,只有在当前页面为首页时执行此命令。

在WordPress环境下这个判断的写法是

<?php if ( is_home() ) { ... }?>

那么全部的代码是:

<?php
$agent = $_SERVER['HTTP_USER_AGENT'];
if ( is_home() && ((strpos($agent,"comFront") || strpos($agent,"iPhone") || strpos($agent,"MIDP-2.0") || strpos($agent,"Opera Mini") || strpos($agent,"UCWEB") || strpos($agent,"Android") || strpos($agent,"Windows CE") || strpos($agent,"SymbianOS")) )
header("Location:http://mkaifa.com/wap");
}
?>

这样我们又遇到一个问题:手机访问者在浏览子页面时,并不知道你提供了WAP界面,而你恰恰又很希望推销的你的WAP界面。

我们可以修改这个判断语句,让它不再直接跳转,而是在特定浏览器下显示提示信息,告诉手机用户可以转换至WAP界面浏览。

代码写法如下:

<?php
$agent = $_SERVER['HTTP_USER_AGENT'];
if(strpos($agent,"comFront") || strpos($agent,"iPhone") || strpos($agent,"MIDP-2.0") || strpos($agent,"Opera Mini") || strpos($agent,"UCWEB") || strpos($agent,"Android") || strpos($agent,"Windows CE") || strpos($agent,"SymbianOS")) { ?>
<div id="mobile"><p>系统检测到您正在使用手机浏览器,您可以访问<a href="http://mkaifa.com/wap">移动界面</a>以获取更好的浏览体验。</p></div>
<?php } ?>

当然了,你可以综合这两种方法,让手机访客在访问首页时自动跳转,而访问其他界面时显示提示信息。

2.需要足够的手机浏览器UA信息

当浏览器访问页面时,它会向服务器提交一个标志字符,这段字符被称作UA(User Agent),他们看起来大概是这个样子:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) )

是的,UA很长,甚至还包含了系统信息。但是当我们进行判断时,只需要核对最关键的字符。比如我需要判断当前用户是否使用了IE 8(我的确就是用的IE8),那么 在上面的判断语句中就应该写成strpos($agent,”MSIE 8.0″) 。

我准备了8种最常见的浏览器/平台分别是comFront、iPhone、JAVA(MIDP-2.0)、Opera Mini、UCWEB、Android、Windows CE/Mobile、SymbianOS。就目前的状况来说,这8种平台已经包含了国内几乎全部的手机访客,当然,完整的手机浏览客户端列表不止这么多,我罗列一些:

2.0 MMP, 240×320, 400X240, AvantGo, BlackBerry, Blazer, Cellphone, Danger, DoCoMo, Elaine/3.0 EudoraWeb, Googlebot-Mobile, hiptop, IEMobile, KYOCERA/WX310K, LG/U990, MIDP-2., MMEF20, MOT-V, comFront, Newt, Nintendo Wii, Nitro, // Nintendo DS Nokia, Opera Mini, Palm, PlayStation Portable, portalmmm, Proxicom, Proxicom, SHARP-TQ-GX10, SHG-i900, Small, SonyEricsson, Symbian OS, SymbianOS, TS21i-10, UP.Browser, UP.Link, webOS, // Palm Pre, etc. Windows CE, WinWAP, YahooSeeker/M1A1-R2D2

你可以根据这个列表添加或替换上面的PHP判断语句。但是我仍然推荐我已经选好的8种平台,因为目前会使用手机浏览互联网——特别是个人博客的用户,基本上都是高端玩家。

另外你可以写一个简单的页面,用来判断你的手机UA

<?phpecho $_SERVER['HTTP_USER_AGENT']; ?>

保存为ua-test.php,上传至服务器,用你的手机访问这个页面。

下载本文
显示全文
专题