PHP判断浏览器、判断语言代码分享
PHP编程中经常需要用到一些服务器的一些资料,特把$_SERVER的详细参数整理下,方便以后使用。
判断浏览器类型
//判断类型 <?php if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE8.0")) echo"InternetExplorer8.0"; elseif(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE7.0")) echo"InternetExplorer7.0"; elseif(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE6.0")) echo"InternetExplorer6.0"; elseif(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/3")) echo"Firefox3"; elseif(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/2")) echo"Firefox2"; elseif(strpos($_SERVER["HTTP_USER_AGENT"],"Chrome")) echo"GoogleChrome"; elseif(strpos($_SERVER["HTTP_USER_AGENT"],"Safari")) echo"Safari"; elseif(strpos($_SERVER["HTTP_USER_AGENT"],"Opera")) echo"Opera"; elseecho$_SERVER["HTTP_USER_AGENT"]; ?>
判断语言
<?php $lang=substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,4);//只取前4位,这样只判断最优先的语言。如果取前5位,可能出现en,zh的情况,影响判断。 if(preg_match("/zh-c/i",$lang)) echo"简体中文"; elseif(preg_match("/zh/i",$lang)) echo"繁體中文"; elseif(preg_match("/en/i",$lang)) echo"English"; elseif(preg_match("/fr/i",$lang)) echo"French"; elseif(preg_match("/de/i",$lang)) echo"German"; elseif(preg_match("/jp/i",$lang)) echo"Japanese"; elseif(preg_match("/ko/i",$lang)) echo"Korean"; elseif(preg_match("/es/i",$lang)) echo"Spanish"; elseif(preg_match("/sv/i",$lang)) echo"Swedish"; elseecho$_SERVER["HTTP_ACCEPT_LANGUAGE"]; ?>
判断浏览器内核的PHP程序
<?php error_reporting(E_ALL&~E_NOTICE); classclientGetObj { functiongetBrowse() { global$_SERVER; $Agent=$_SERVER['HTTP_USER_AGENT']; $browser=''; $browserver=''; $Browser=array('Lynx','MOSAIC','AOL','Opera','JAVA','MacWeb','WebExplorer','OmniWeb'); for($i=0;$i<=7;$i++){ if(strpos($Agent,$Browsers[$i])){ $browser=$Browsers[$i]; $browserver=''; } } if(preg_match('/Mozilla/',$Agent)&&!preg_match('/MSIE/',$Agent)){ $temp=explode('(',$Agent); $Part=$temp[0]; $temp=explode('/',$Part); $browserver=$temp[1]; $temp=explode('',$browserver); $browserver=$temp[0]; $browserver=preg_replace('/([d.]+)/','1',$browserver); $browserver=$browserver; $browser='NetscapeNavigator'; } if(preg_match('/Mozilla/',$Agent)&&preg_match('/Opera/',$Agent)){ $temp=explode('(',$Agent); $Part=$temp[1]; $temp=explode(')',$Part); $browserver=$temp[1]; $temp=explode('',$browserver); $browserver=$temp[2]; $browserver=preg_replace('/([d.]+)/','1',$browserver); $browserver=$browserver; $browser='Opera'; } if(preg_match('/Mozilla/',$Agent)&&preg_match('/MSIE/',$Agent)){ $temp=explode('(',$Agent); $Part=$temp[1]; $temp=explode(';',$Part); $Part=$temp[1]; $temp=explode('',$Part); $browserver=$temp[2]; $browserver=preg_replace('/([d.]+)/','1',$browserver); $browserver=$browserver; $browser='InternetExplorer'; } if($browser!=''){ $browseinfo=$browser.''.$browserver; }else{ $browseinfo=false; } return$browseinfo; } functiongetIP() { global$_SERVER; if(getenv('HTTP_CLIENT_IP')){ $ip=getenv('HTTP_CLIENT_IP'); }elseif(getenv('HTTP_X_FORWARDED_FOR')){ $ip=getenv('HTTP_X_FORWARDED_FOR'); }elseif(getenv('REMOTE_ADDR')){ $ip=getenv('REMOTE_ADDR'); }else{ $ip=$_SERVER['REMOTE_ADDR']; } return$ip; } functiongetOS() { global$_SERVER; $agent=$_SERVER['HTTP_USER_AGENT']; $os=false; if(preg_match('/win/',$agent)&&strpos($agent,'95')){ $os='Windows95'; } elseif(preg_match('/win9x/',$agent)&&strpos($agent,'4.90')){ $os='WindowsME'; } elseif(preg_match('/win/',$agent)&&preg_match('98',$agent)){ $os='Windows98'; } elseif(preg_match('/win/',$agent)&&preg_match('nt5.1',$agent)){ $os='WindowsXP'; } elseif(preg_match('/win/',$agent)&&preg_match('nt5',$agent)){ $os='Windows2000'; } elseif(preg_match('/win/',$agent)&&preg_match('nt',$agent)){ $os='WindowsNT'; } elseif(preg_match('/win/',$agent)&&preg_match('32',$agent)){ $os='Windows32'; } elseif(preg_match('/linux/',$agent)){ $os='Linux'; } elseif(preg_match('/unix/',$agent)){ $os='Unix'; } elseif(preg_match('/sun/',$agent)&&preg_match('os',$agent)){ $os='SunOS'; } elseif(preg_match('/ibm/',$agent)&&preg_match('os',$agent)){ $os='IBMOS/2'; } elseif(preg_match('/Mac/',$agent)&&preg_match('PC',$agent)){ $os='Macintosh'; } elseif(preg_match('/PowerPC/',$agent)){ $os='PowerPC'; } elseif(preg_match('/AIX/',$agent)){ $os='AIX'; } elseif(preg_match('/HPUX/',$agent)){ $os='HPUX'; } elseif(preg_match('/NetBSD/',$agent)){ $os='NetBSD'; } elseif(preg_match('/BSD/',$agent)){ $os='BSD'; } elseif(preg_match('/OSF1/',$agent)){ $os='OSF1'; } elseif(preg_match('/IRIX/',$agent)){ $os='IRIX'; } elseif(preg_match('/FreeBSD/',$agent)){ $os='FreeBSD'; } elseif(preg_match('/teleport/',$agent)){ $os='teleport'; } elseif(preg_match('/flashget/',$agent)){ $os='flashget'; } elseif(preg_match('/webzip/',$agent)){ $os='webzip'; } elseif(preg_match('/offline/',$agent)){ $os='offline'; } else{ $os='Unknown'; } return$os; } } $code=newclientGetObj; echo$str1=$code->getBrowse()."<br>";//浏览器: echo$str2=$code->getIP()."<br>";//IP地址: echo$str3=$code->getOS();//操作系统: ?>
以上就是个人整理的关于$_SERVER获取服务器信息的常用信息了,希望大家能够喜欢。