<?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); // PC 跳 WAP 女生频道对应 if ($uri === '/woman') { $uri = '/girls'; } // 首页特殊跳转 if ($host === 'www.yohobuy.com') { return 'm.yohobuy.com' . $uri; } $url = strtr($host, array('.yohobuy.com' => '.m.yohobuy.com')) . $uri; return $url; } /** * 获取新的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(); if (stristr($userAgent, 'ipad')) { return false; } $mobileAgents = array('iphone','android',"240x320","acer","acoon","acs-","abacho","ahong","airness","alcatel","amoi","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"); $isMobile = false; foreach ($mobileAgents as $device) { if (stristr($userAgent, $device)) { $isMobile = true; break; } } return $isMobile; } /** * 是否转到手机版 * @return bool */ public static function isGoMobile() { if (empty($_COOKIE['m2w']) && self::isMobile()) { header("HTTP/1.1 301 Moved Permanently"); header('Location:http://'.self::getNewUrl()); exit(); } return true; } }