我的需求是:制作zblog模板的时候,有的地方需要对移动端或电脑端进行不同的排版,那么就需要一个判断来路的方法,步骤是:
1、在模板文件夹里面的include.php文件的最后,加上如下代码:
- //判断PC or 移动端
- function ismobile() {
- if ( isset( $_SERVER[ 'HTTP_X_WAP_PROFILE' ] ) ) {
- return true;
- }
- if ( isset( $_SERVER[ 'HTTP_VIA' ] ) ) {
- 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' );
- if ( preg_match( "/(" . implode( '|', $clientkeywords ) . ")/i", strtolower( $_SERVER[ 'HTTP_USER_AGENT' ] ) ) ) {
- return true;
- }
- }
- if ( isset( $_SERVER[ 'HTTP_ACCEPT' ] ) ) {
- 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;
- }
复制代码
2、前端模板调用方法:
- <?php if (ismobile() ): ?>
- //如果是手机端,则显示什么内容在这里写
- <?php else: ?>
- //这里写电脑端代码
- <?php endif ;?>
复制代码
上面的代码如果不可以就用下面这个来调用:
- {if ismobile()}
- //如果是手机端,代码写这里
- {else}
- //电脑端代码写这里
- {/if}
复制代码 |