代码中的函数 is_mobile来源于网上,写得挺好的。入口文件通过判断终端类型,定义APP_PATH和APP_NAME,从而执行不同的分组。我要实现的效果是PC和Mobile均用顶级域名访问。当然了,如果你想在手机里实现类似于wap.xxx.com这样的访问,本方法是做不到的,这是thinkphp多域名部署的问题,具体参见tp手册。
用thinkphp框架快速开发一个小型站点还是很方便的,正如本站。菜根网还做了一个手机端的网站,手机浏览器输入本站域名www.icaigen.com查看效果。
下面仅仅讲述在thinkphp的前端引导页面index.php文件中实现平台判断,从而加载不同的分组(或项目)。
01.//判断是否属手机
02.
03.
function
is_mobile(){
04.
05.
$user_agent
=
$_SERVER
[
'HTTP_USER_AGENT'
];
06.
07.
$mobile_agents
= Array(
"240x320"
,
"acer"
,
"acoon"
,
"acs-"
,
"abacho"
,
"ahong"
,
"airness"
,
"alcatel"
,
"amoi"
,
"android"
,
"anywhereyougo.com"
,
"applewebkit/525"
,
"applewebkit/532"
,
"asus"
,
"audio"
,
"au-mic"
,
"avantogo"
,
"becker"
,
"benq"
,
"bilbo"
,
"bird"
,
"blackberry"
,
"blazer"
,
"bleu"
,
"cdm-"
,
"compal"
,
"coolpad"
,
"danger"
,
"dbtel"
,
"dopod"
,
"elaine"
,
"eric"
,
"etouch"
,
"fly "
,
"fly_"
,
"fly-"
,
"go.web"
,
"goodaccess"
,
"gradiente"
,
"grundig"
,
"haier"
,
"hedy"
,
"hitachi"
,
"htc"
,
"huawei"
,
"hutchison"
,
"inno"
,
"ipad"
,
"ipaq"
,
"ipod"
,
"jbrowser"
,
"kddi"
,
"kgt"
,
"kwc"
,
"lenovo"
,
"lg "
,
"lg2"
,
"lg3"
,
"lg4"
,
"lg5"
,
"lg7"
,
"lg8"
,
"lg9"
,
"lg-"
,
"lge-"
,
"lge9"
,
"longcos"
,
"maemo"
,
"mercator"
,
"meridian"
,
"micromax"
,
"midp"
,
"mini"
,
"mitsu"
,
"mmm"
,
"mmp"
,
"mobi"
,
"mot-"
,
"moto"
,
"nec-"
,
"netfront"
,
"newgen"
,
"nexian"
,
"nf-browser"
,
"nintendo"
,
"nitro"
,
"nokia"
,
"nook"
,
"novarra"
,
"obigo"
,
"palm"
,
"panasonic"
,
"pantech"
,
"philips"
,
"phone"
,
"pg-"
,
"playstation"
,
"pocket"
,
"pt-"
,
"qc-"
,
"qtek"
,
"rover"
,
"sagem"
,
"sama"
,
"samu"
,
"sanyo"
,
"samsung"
,
"sch-"
,
"scooter"
,
"sec-"
,
"sendo"
,
"sgh-"
,
"sharp"
,
"siemens"
,
"sie-"
,
"softbank"
,
"sony"
,
"spice"
,
"sprint"
,
"spv"
,
"symbian"
,
"tablet"
,
"talkabout"
,
"tcl-"
,
"teleca"
,
"telit"
,
"tianyu"
,
"tim-"
,
"toshiba"
,
"tsm"
,
"up.browser"
,
"utec"
,
"utstar"
,
"verykool"
,
"virgin"
,
"vk-"
,
"voda"
,
"voxtel"
,
"vx"
,
"wap"
,
"wellco"
,
"wig browser"
,
"wii"
,
"windows ce"
,
"wireless"
,
"xda"
,
"xde"
,
"zte"
);
08.
09.
$is_mobile
= false;
10.
11.
foreach
(
$mobile_agents
as
$device
) {
12.
13.
if
(
stristr
(
$user_agent
,
$device
)) {
14.
15.
$is_mobile
= true;
16.
17.
break
;
18.
19.
}
20.
21.
}
22.
23.
return
$is_mobile
;
24.
25.
}
26.
27.
define(
'THINK_PATH'
,
'./CORE/'
);
28.
29.
if
(is_mobile()){
//跳转至wap分组
30.
31.
define(
'APP_NAME'
,
'Wap'
);
32.
33.
define(
'APP_PATH'
,
'./Wap/'
);
34.
35.
}
else
{
36.
37.
define(
'APP_NAME'
,
'Home'
);
38.
39.
define(
'APP_PATH'
,
'./Home/'
);
40.
41.
}
42.
43.
define(
'APP_DEBUG'
, false);
44.
45.
require
THINK_PATH.
'core.php'
;
代码中的函数 is_mobile来源于网上,写得挺好的。入口文件通过判断终端类型,定义APP_PATH和APP_NAME,从而执行不同的分组。
我要实现的效果是PC和Mobile均用顶级域名访问。当然了,如果你想在手机里实现类似于wap.xxx.com这样的访问,本方法是做不到的,这是thinkphp多域名部署的问题,具体参见tp手册。
定义好了入口文件,然后就可以在WAP分组(或项目)下开发手机版网站的代码了。因为是手机版网站,分辨率,图片压缩,网页大小等都是赤裸裸的问题。本人也才接触手机网站建设没几天,就不卖弄了。可以明确的是,PC端网站上非主要的功能在手机网站上都可以砍掉了,比如博客的热门文章,随机文章,评论列表,各种挂件等。