First, a section of PHP code to determine whether to browse for mobile phone:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 6667 |
function
isMobile()
{
// 如果有HTTP_X_WAP_PROFILE则一定是移动设备
if
(isset (
$_SERVER
[
‘HTTP_X_WAP_PROFILE‘
]))
{
return
true;
}
// 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
if
(isset (
$_SERVER
[
‘HTTP_VIA‘
]))
{
// 找不到为flase,否则为true
return
stristr
(
$_SERVER
[
‘HTTP_VIA‘
],
"wap"
) ? true : false;
}
// 脑残法,判断手机发送的客户端标志,兼容性有待提高
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‘
);
// 从HTTP_USER_AGENT中查找手机浏览器的关键字
if
(preg_match(
"/("
. implode(
‘|‘
,
$clientkeywords
) .
")/i"
,
strtolower
(
$_SERVER
[
‘HTTP_USER_AGENT‘
])))
{
return
true;
}
}
// 协议法,因为有可能不准确,放到最后判断
if
(isset (
$_SERVER
[
‘HTTP_ACCEPT‘
]))
{
// 如果只支持wml并且不支持html那一定是移动设备
// 如果支持wml和html但是wml在html之前则是移动设备
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;
}
|
Create two templates in the Phpcms template file:
The files in the content are PC-side templates, and the files in Content_m are mobile-side templates.
Second, edit the phpcms/modules/content/index.php in Pgpcms
Put the above PHP code in the class of index.
Find all of:
1 |
include template( ‘content‘ , $template ); |
To be replaced by:
1234 |
if ( $this ->ismobile ()) { &NBSP;&NBSP;&NBSP;&NBSP; include template ( ' content_m ' $template } else { &NBSP;&NBSP;&NBSP;&NBSP; include template ( $template |
In the end:
1 |
include template( ‘content‘ , ‘index‘ , $default_style ); |
To be replaced by:
12345 |
if
(
$this
->isMobile()){
include
template(
‘content_m‘
,
‘index‘
,
$default_style
);
}
else
{
include
template(
‘content‘
,
‘index‘
,
$default_style
);
}
|
So far, it's basically set up. When running the index.php file in Phpcms, the synchronization of the mobile phone and the PC-side database is achieved based on whether different templates are called for the phone end.
Forward from http://www.cnblogs.com/cyrfr/p/7194152.html
PHP Judge mobile phone segment login, as well as PHPCMS mobile phone PC dual template call