php判断手机段登录,以及phpcms手机PC双模板调用

Posted 发瑞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php判断手机段登录,以及phpcms手机PC双模板调用相关的知识,希望对你有一定的参考价值。

首先一段php代码判断是否为手机浏览:

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;
} 

phpcms 模板文件中创建两个模板:

其中 content中的文件是PC端模板,content_m中的文件是手机端模板。

其次在pgpcms中 编辑 phpcms/modules/content/index.php

讲以上php代码 放到index的class类中。

找到所有的:

include template(\'content\',$template);

替换为:

if($this->isMobile()){
	include template(\'content_m\',$template);
}else{
	include template(\'content\',$template);

 最后将:

include template(\'content\',\'index\',$default_style);

 替换为:

if($this->isMobile()){
	include template(\'content_m\',\'index\',$default_style);
}else{
	include template(\'content\',\'index\',$default_style);
}

  

到现在为止基本上就设置好了当运行phpcms中的index.php文件是,会根据是否为手机端调用不同的模板,实现了手机端和PC端数据库的同步。

以上是关于php判断手机段登录,以及phpcms手机PC双模板调用的主要内容,如果未能解决你的问题,请参考以下文章

php判断手机段登录,以及phpcms手机PC双模板调用

你好,phpcms同一个网站有PC跟手机两个模板怎么设置访问同一个域名!

PHPCMS手机插件把手机跟PC一样静态的办法

phpcms 手机门户配置注意事项

PHPCMS如何开启手机站点

Phpcms V9手机门户设置教程:怎么用PC V9做手机网站