thinkphpÔõÑùƾ֤װ±¸»á¼û²î±ðÄ£°å
thinkphpƾ֤װ±¸»á¼û²î±ðÄ£°åµÄÒªÁ죺1¡¢°Ñ¡°function isMobile(){…}¡±·ÅÔÚ¡°app\common.php¡±¹«¹²ÒªÁìÖУ»2¡¢ÔÚindexÄ£¿éÏµĹ«¹²ÒªÁìÄÚÉèÖÃÇ°ÖòÙ×÷£»3¡¢ÅжÏΪtrueÔòÖ´ÐС°mobile/index¡±ÒªÁ죬²»È»Ö´ÐÐÁíÒ»¸öpc¶ËµÄ¿ØÖÆÆ÷²Ù×÷¼´¿É¡£
thinkphp5ÅжÏÒƶ¯»òpc¶Ë»á¼û²¢Å²Óòî±ðÄ£°å
°ÑÏÂÃæµÄ´úÂë·ÅÔÚapp\common.php¹«¹²ÒªÁìÄÇÀï¡£
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¡¯], ¡®textml¡¯) === false || (strpos($_SERVER[¡®HTTP_ACCEPT¡¯], ¡®vnd.wap.wml¡¯) < strpos($_SERVER[¡®HTTP_ACCEPT¡¯], ¡®textml¡¯)))) { return true; } } return false; }
µÇ¼ºó¸´ÖÆ
ÔÙÔÚindexÄ£¿éÏµĹ«¹²ÒªÁìÄÚÉèÖÃÇ°ÖòÙ×÷£¬ÈôÊÇÅжÏΪtrueÔòÖ´ÐÐmobile/indexÒªÁ죨Òƶ¯¶ËµÄ¿ØÖÆÆ÷£©£¬²»È»ÔòÖ´ÐÐÁíÒ»¸öpc¶ËµÄ¿ØÖÆÆ÷²Ù×÷
public function _initialize(){ if(isMobile()){ $this->redirect(¡®mobile/index¡¯); } }
µÇ¼ºó¸´ÖÆ
ÒªÁì2
Á¬Ã¦Ñ§Ï°¡°PHPÃâ·ÑѧϰÌõ¼Ç£¨ÉîÈ룩¡±£»
°ÑÒªÁì·ÅÔÚapp/common¡£phpÎļþ¼ÐÄÚÀï
// Ó¦Óù«¹²Îļþ //ÅжϿͻ§¶Ë»á¼û·½·¨ function ismobile() { // ÈôÊÇÓÐHTTP_X_WAP_PROFILEÔòÒ»¶¨ÊÇÒƶ¯×°±¸ if (isset ($_SERVER[¡®HTTP_X_WAP_PROFILE¡¯])) return true; //´ËÌõÕª×ÔTPMÖÇÄÜÇл»Ä£°åÒýÇ棬ÊʺÏTPM¿ª·¢ if(isset ($_SERVER[¡®HTTP_CLIENT¡¯]) &&¡¯PhoneClient¡¯==$_SERVER[¡®HTTP_CLIENT¡¯]) 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; }
µÇ¼ºó¸´ÖÆ
ÒÔÉϾÍÊÇthinkphpÔõÑùƾ֤װ±¸»á¼û²î±ðÄ£°åµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡
ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí£¬°æȨÕùÒéÓë±¾Õ¾Î޹أ¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í×ðÁú¿Ê±¹ÙÍøµÇ¼ÂËÓÍ»úÍø¹Ù·½Ì¬¶È£¬Çë¶ÁÕß½ö×ö²Î¿¼¡£±¾ÎĽӴýתÔØ£¬×ªÔØÇë˵Ã÷À´ÓÉ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢£¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢£¬ÇëÄúÁ¬Ã¦ÁªÏµ×ðÁú¿Ê±¹ÙÍøµÇ¼ʵʱÐÞÕý»òɾ³ý¡£