在这里博主为大家分享了PHP判断的两个实例,一是PHP判断是手机端还是PC端,二是PHP判断是否是微信浏览器,供大家参考,具体内容如下
1、判断是否是手机端
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">isMobile</span><span class="hljs-params">()</span> </span>{ <span class="hljs-comment">// 如果有HTTP_X_WAP_PROFILE则一定是移动设备</span> <span class="hljs-keyword">if</span> (<span class="hljs-keyword">isset</span>($_SERVER[<span class="hljs-string">'HTTP_X_WAP_PROFILE'</span>])) { <span class="hljs-keyword">return</span> <span class="hljs-keyword">true</span>; } <span class="hljs-comment">// 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息</span> <span class="hljs-keyword">if</span> (<span class="hljs-keyword">isset</span>($_SERVER[<span class="hljs-string">'HTTP_VIA'</span>])) { <span class="hljs-comment">// 找不到为flase,否则为true</span> <span class="hljs-keyword">return</span> stristr($_SERVER[<span class="hljs-string">'HTTP_VIA'</span>], <span class="hljs-string">"wap"</span>) ? <span class="hljs-keyword">true</span> : <span class="hljs-keyword">false</span>; } <span class="hljs-comment">// 脑残法,判断手机发送的客户端标志,兼容性有待提高。其中'MicroMessenger'是电脑微信</span> <span class="hljs-keyword">if</span> (<span class="hljs-keyword">isset</span>($_SERVER[<span class="hljs-string">'HTTP_USER_AGENT'</span>])) { $clientkeywords = <span class="hljs-keyword">array</span>(<span class="hljs-string">'nokia'</span>,<span class="hljs-string">'sony'</span>,<span class="hljs-string">'ericsson'</span>,<span class="hljs-string">'mot'</span>,<span class="hljs-string">'samsung'</span>,<span class="hljs-string">'htc'</span>,<span class="hljs-string">'sgh'</span>,<span class="hljs-string">'lg'</span>,<span class="hljs-string">'sharp'</span>,<span class="hljs-string">'sie-'</span>,<span class="hljs-string">'philips'</span>,<span class="hljs-string">'panasonic'</span>,<span class="hljs-string">'alcatel'</span>, <span class="hljs-string">'lenovo'</span>,<span class="hljs-string">'iphone'</span>,<span class="hljs-string">'ipod'</span>,<span class="hljs-string">'blackberry'</span>,<span class="hljs-string">'meizu'</span>,<span class="hljs-string">'android'</span>,<span class="hljs-string">'netfront'</span>,<span class="hljs-string">'symbian'</span>,<span class="hljs-string">'ucweb'</span>,<span class="hljs-string">'windowsce'</span>,<span class="hljs-string">'palm'</span>,<span class="hljs-string">'operamini'</span>,<span class="hljs-string">'operamobi'</span>, <span class="hljs-string">'openwave'</span>,<span class="hljs-string">'nexusone'</span>,<span class="hljs-string">'cldc'</span>,<span class="hljs-string">'midp'</span>,<span class="hljs-string">'wap'</span>,<span class="hljs-string">'mobile'</span>,<span class="hljs-string">'MicroMessenger'</span>); <span class="hljs-comment">// 从HTTP_USER_AGENT中查找手机浏览器的关键字</span> <span class="hljs-keyword">if</span> (preg_match(<span class="hljs-string">"/("</span> . implode(<span class="hljs-string">'|'</span>, $clientkeywords) . <span class="hljs-string">")/i"</span>, strtolower($_SERVER[<span class="hljs-string">'HTTP_USER_AGENT'</span>]))) { <span class="hljs-keyword">return</span> <span class="hljs-keyword">true</span>; } } <span class="hljs-comment">// 协议法,因为有可能不准确,放到最后判断</span> <span class="hljs-keyword">if</span> (<span class="hljs-keyword">isset</span> ($_SERVER[<span class="hljs-string">'HTTP_ACCEPT'</span>])) { <span class="hljs-comment">// 如果只支持wml并且不支持html那一定是移动设备</span> <span class="hljs-comment">// 如果支持wml和html但是wml在html之前则是移动设备</span> <span class="hljs-keyword">if</span> ((strpos($_SERVER[<span class="hljs-string">'HTTP_ACCEPT'</span>], <span class="hljs-string">'vnd.wap.wml'</span>) !== <span class="hljs-keyword">false</span>) && (strpos($_SERVER[<span class="hljs-string">'HTTP_ACCEPT'</span>], <span class="hljs-string">'text/html'</span>) === <span class="hljs-keyword">false</span> || (strpos($_SERVER[<span class="hljs-string">'HTTP_ACCEPT'</span>], <span class="hljs-string">'vnd.wap.wml'</span>) < strpos($_SERVER[<span class="hljs-string">'HTTP_ACCEPT'</span>], <span class="hljs-string">'text/html'</span>)))) { <span class="hljs-keyword">return</span> <span class="hljs-keyword">true</span>; } } <span class="hljs-keyword">return</span> <span class="hljs-keyword">false</span>; } |
2、判断是否是微信内置浏览器
1 2 3 4 5 6 7 |
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">isWeixin</span><span class="hljs-params">()</span> </span>{ <span class="hljs-keyword">if</span> (strpos($_SERVER[<span class="hljs-string">'HTTP_USER_AGENT'</span>], <span class="hljs-string">'MicroMessenger'</span>) !== <span class="hljs-keyword">false</span>) { <span class="hljs-keyword">return</span> <span class="hljs-keyword">true</span>; } <span class="hljs-keyword">else</span> { <span class="hljs-keyword">return</span> <span class="hljs-keyword">false</span>; } } |