thinkphp根據設備訪問不同模板的方法:1、把“function isMobile(){…}”放在“appcommon.php”公共方法中;2、在index模塊下的公共方法內設置前置操作;3、判斷為true則執(zhí)行“mobile/index”方法,否則執(zhí)行另一個pc端的控制器操作即可。
thinkphp5判斷移動或pc端訪問并調用不同模板
把下面的代碼放在appcommon.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’)?<p>再在index模塊下的公共方法內設置前置操作,如果判斷為true則執(zhí)行mobile/index方法(移動端的控制器),否則則執(zhí)行另一個pc端的控制器操作</p><pre class="brush:php;toolbar:false">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開發(fā) 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; //判斷手機發(fā)送的客戶端標志,兼容性有待提高 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; } } //協(xié)議法,因為有可能不準確,放到最后判斷 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’)?<script type="text/javascript" src="https://sw.yisu.com/hezuo/43cc2463da342d2af2696436bd2d05f4.html?bottom"></script>
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦