PHP判定ブラウザ、判定言語コード共有
PHPプログラミングにはサーバーの資料が必要です。特に$uSERVERの詳細なパラメータを整理して、後で使いやすいです。
ブラウザの種類を判断する
ブラウザの種類を判断する
//
<?php
if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 8.0"))
echo "Internet Explorer 8.0";
else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 7.0"))
echo "Internet Explorer 7.0";
else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 6.0"))
echo "Internet Explorer 6.0";
else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/3"))
echo "Firefox 3";
else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/2"))
echo "Firefox 2";
else if(strpos($_SERVER["HTTP_USER_AGENT"],"Chrome"))
echo "Google Chrome";
else if(strpos($_SERVER["HTTP_USER_AGENT"],"Safari"))
echo "Safari";
else if(strpos($_SERVER["HTTP_USER_AGENT"],"Opera"))
echo "Opera";
else echo $_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 " ";
else if (preg_match("/zh/i", $lang))
echo " w ";
else if (preg_match("/en/i", $lang))
echo "English";
else if (preg_match("/fr/i", $lang))
echo "French";
else if (preg_match("/de/i", $lang))
echo "German";
else if (preg_match("/jp/i", $lang))
echo "Japanese";
else if (preg_match("/ko/i", $lang))
echo "Korean";
else if (preg_match("/es/i", $lang))
echo "Spanish";
else if (preg_match("/sv/i", $lang))
echo "Swedish";
else echo $_SERVER["HTTP_ACCEPT_LANGUAGE"];
?>
ブラウザのカーネルを判断するPHPプログラム
<?php
error_reporting(E_ALL & ~ E_NOTICE);
class clientGetObj
{
function getBrowse()
{
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 = 'Netscape Navigator';
}
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 = 'Internet Explorer';
}
if($browser != ''){
$browseinfo = $browser.' '.$browserver;
} else {
$browseinfo = false;
}
return $browseinfo;
}
function getIP ()
{
global $_SERVER;
if (getenv('HTTP_CLIENT_IP')) {
$ip = getenv('HTTP_CLIENT_IP');
} else if (getenv('HTTP_X_FORWARDED_FOR')) {
$ip = getenv('HTTP_X_FORWARDED_FOR');
} else if (getenv('REMOTE_ADDR')) {
$ip = getenv('REMOTE_ADDR');
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
function getOS ()
{
global $_SERVER;
$agent = $_SERVER['HTTP_USER_AGENT'];
$os = false;
if (preg_match('/win/', $agent) && strpos($agent, '95')){
$os = 'Windows 95';
}
else if (preg_match('/win 9x/', $agent) && strpos($agent, '4.90')){
$os = 'Windows ME';
}
else if (preg_match('/win/', $agent) && preg_match('98', $agent)){
$os = 'Windows 98';
}
else if (preg_match('/win/', $agent) && preg_match('nt 5.1', $agent)){
$os = 'Windows XP';
}
else if (preg_match('/win/', $agent) && preg_match('nt 5', $agent)){
$os = 'Windows 2000';
}
else if (preg_match('/win/', $agent) && preg_match('nt', $agent)){
$os = 'Windows NT';
}
else if (preg_match('/win/', $agent) && preg_match('32', $agent)){
$os = 'Windows 32';
}
else if (preg_match('/linux/', $agent)){
$os = 'Linux';
}
else if (preg_match('/unix/', $agent)){
$os = 'Unix';
}
else if (preg_match('/sun/', $agent) && preg_match('os', $agent)){
$os = 'SunOS';
}
else if (preg_match('/ibm/', $agent) && preg_match('os', $agent)){
$os = 'IBM OS/2';
}
else if (preg_match('/Mac/', $agent) && preg_match('PC', $agent)){
$os = 'Macintosh';
}
else if (preg_match('/PowerPC/', $agent)){
$os = 'PowerPC';
}
else if (preg_match('/AIX/', $agent)){
$os = 'AIX';
}
else if (preg_match('/HPUX/', $agent)){
$os = 'HPUX';
}
else if (preg_match('/NetBSD/', $agent)){
$os = 'NetBSD';
}
else if (preg_match('/BSD/', $agent)){
$os = 'BSD';
}
else if (preg_match('/OSF1/', $agent)){
$os = 'OSF1';
}
else if (preg_match('/IRIX/', $agent)){
$os = 'IRIX';
}
else if (preg_match('/FreeBSD/', $agent)){
$os = 'FreeBSD';
}
else if (preg_match('/teleport/', $agent)){
$os = 'teleport';
}
else if (preg_match('/flashget/', $agent)){
$os = 'flashget';
}
else if (preg_match('/webzip/', $agent)){
$os = 'webzip';
}
else if (preg_match('/offline/', $agent)){
$os = 'offline';
}
else {
$os = 'Unknown';
}
return $os;
}
}
$code = new clientGetObj;
echo $str1 = $code->getBrowse()."<br>";// :
echo $str2 = $code->getIP()."<br>";//IP :
echo $str3 = $code->getOS();// :
?>
以上は個人で整理しました。SERVERはサーバ情報の常用情報を取得しました。お好きになってください。