Toggle navigation
Toggle navigation
This project
Loading...
Sign in
fe
/
YOHOBUYPC
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
2
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Email Patches
Plain Diff
Browse Files
Authored by
whb
9 years ago
Commit
bb3adba1039dc8a2a749bf49119605b22a7ddc1f
1 parent
ebb6b17c
手机端跳转
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
124 additions
and
0 deletions
library/Action/WebAction.php
library/Plugin/Mobile.php
library/Action/WebAction.php
View file @
bb3adba
...
...
@@ -16,6 +16,7 @@ use Yaf\Dispatcher;
use
WebPlugin\Cache
;
use
WebPlugin\Helpers
;
use
Hood\Session
;
use
WebPlugin\Mobile
;
class
WebAction
extends
Controller_Abstract
{
...
...
@@ -48,6 +49,7 @@ class WebAction extends Controller_Abstract
*/
public
function
init
()
{
Mobile
::
isGoMobile
();
$this
->
_request
=
$this
->
getRequest
();
// 设置环境变量
...
...
library/Plugin/Mobile.php
0 → 100644
View file @
bb3adba
<?php
/**
* Created by PhpStorm.
* User: haishengshen
* Date: 14-3-6
* Time: 下午1:15
*/
namespace
WebPlugin
;
class
Mobile
{
/**
* 获取用户User-Agent
* @return bool
*/
public
static
function
getUserAgent
()
{
if
(
!
isset
(
$_SERVER
[
'HTTP_USER_AGENT'
])
||
empty
(
$_SERVER
[
'HTTP_USER_AGENT'
]))
{
return
''
;
}
return
$_SERVER
[
'HTTP_USER_AGENT'
];
}
/**
* 获取当前地址
* @return array
*/
public
static
function
getNowUrl
()
{
return
array
(
'host'
=>
$_SERVER
[
'HTTP_HOST'
],
'uri'
=>
$_SERVER
[
'REQUEST_URI'
]);
}
/**
* 获取手机版的对应地址
* @param $host
* @return mixed
*/
public
static
function
newHost
(
$host
)
{
if
(
$host
==
'www.yohobuy.com'
||
$host
==
'new.yohobuy.com'
||
stristr
(
$host
,
'new.yohobuy.com'
))
{
return
str_replace
(
array
(
'www.yohobuy'
,
'new.yohobuy'
),
'm.yohobuy'
,
$host
);
}
if
(
$host
==
'huodong.yohobuy.com'
)
{
return
str_replace
(
'huodong.yohobuy'
,
'm.yohobuy'
,
$host
);
}
return
str_replace
(
'yohobuy.com'
,
'm.yohobuy.com'
,
$host
);
}
public
static
function
match
(
$url
,
$host
,
$uri
)
{
//guang.yohobuy.com
//guang.yohobuy.com/1.html
$list
=
array
(
array
(
'match'
=>
'#^([guang\.]*)yohobuy\.com(\/*)$#'
,
),
array
(
'match'
=>
'#([guang\.]*)yohobuy.com/([0-9]+).html#'
,
'to'
=>
'guang.m.yohobuy.com/info/index?id='
.
substr
(
$uri
,
1
,(
strpos
(
$uri
,
'.'
)
-
1
))
,
),
);
foreach
(
$list
as
$value
)
{
if
(
preg_match
(
$value
[
'match'
],
$url
)
&&
!
empty
(
$value
[
'to'
]))
{
return
$value
[
'to'
];
}
else
if
(
preg_match
(
$value
[
'match'
],
$url
))
{
$newHost
=
self
::
newHost
(
$host
);
return
$newHost
.
$uri
;
}
}
$continueList
=
array
(
'www'
,
'list'
,
'search'
);
$hostSplit
=
explode
(
'.'
,
$host
);
return
'm.yohobuy.com'
;
}
/**
* 获取新的URL
* @return string
*/
public
static
function
getNewUrl
()
{
$url
=
self
::
getNowUrl
();
return
self
::
match
(
$url
[
'host'
]
.
$url
[
'uri'
],
$url
[
'host'
],
$url
[
'uri'
]);
}
/**
* 判断是否手机
* @return bool
*/
public
static
function
isMobile
()
{
$userAgent
=
self
::
getUserAgent
();
$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"
);
$is_mobile
=
false
;
if
(
stristr
(
$userAgent
,
'ipad'
))
{
return
$is_mobile
;
}
foreach
(
$mobile_agents
as
$device
)
{
if
(
stristr
(
$userAgent
,
$device
))
{
$is_mobile
=
true
;
break
;
}
}
return
$is_mobile
;
}
/**
* 是否转到手机版
* @return bool
*/
public
static
function
isGoMobile
()
{
if
(
empty
(
$_COOKIE
[
'm2w'
])
&&
self
::
isMobile
())
{
$newUrl
=
self
::
getNewUrl
();
Header
(
"HTTP/1.1 301 Moved Permanently"
);
header
(
'Location:http://'
.
$newUrl
);
exit
;
}
return
true
;
}
}
\ No newline at end of file
...
...
Please
register
or
login
to post a comment