2016-12-19 18:05:35 gouyuanyang 阅读数 641


PHP 获取操作系统


function getSystem() {
        $agent = $_SERVER['HTTP_USER_AGENT'];
        $os = false;
        if (stristr($agent,'win')) {
            $os = 'Windows';
        }
        else if (stristr($agent,'win') && stristr($agent, '95')) {
            $os = 'Windows 95';
        }
        else if (stristr($agent,'win 9x') && stristr($agent, '4.90')) {
            $os = 'Windows ME';
        }
        else if (stristr($agent,'win') && stristr($agent,'98')) {
            $os = 'Windows 98';
        }
        else if (stristr($agent,'win') && stristr($agent,'nt 5.1')) {
            $os = 'Windows XP';
        }
        else if (stristr($agent,'win') && stristr($agent,'nt 5')) {
            $os = 'Windows 2000';
        }
        else if (stristr($agent,'win') && stristr($agent,'nt')) {
            $os = 'Windows NT';
        }
        else if (stristr($agent,'win') && stristr($agent,'32')) {
            $os = 'Windows 32';
        } else if (stristr($agent,'linux')) {
            $os = 'Linux';
        }
        else if (stristr($agent,'unix')) {
            $os = 'Unix';
        }
        else if (stristr($agent,'sun') && stristr($agent,'os')) {
            $os = 'SunOS';
        }
        else if (stristr($agent,'ibm') && stristr($agent,'os')) {
            $os = 'IBM OS/2';
        }
        else if (stristr($agent,'Mac')) {
            $os = 'Mac OS X';
        }
        else if (stristr($agent,'PowerPC')) {
            $os = 'PowerPC';
        }
        else if (stristr($agent,'AIX')) {
            $os = 'AIX';
        }
        else if (stristr($agent,'HPUX')) {
            $os = 'HPUX';
        }
        else if (stristr($agent,'NetBSD')) {
            $os = 'NetBSD';
        }
        else if (stristr($agent,'BSD')) {
            $os = 'BSD';
        }
        else if (stristr($agent,'OSF1')) {
            $os = 'OSF1';
        }
        else if (stristr($agent,'IRIX')) {
            $os = 'IRIX';
        }
        else if (stristr($agent,'FreeBSD')) {
            $os = 'FreeBSD';
        }
        else if (stristr($agent,'teleport')) {
            $os = 'teleport';
        }
        else if (stristr($agent,'flashget')) {
            $os = 'flashget';
        }
        else if (stristr($agent,'webzip')) {
            $os = 'webzip';
        }
        else if (stristr($agent,'offline')) {
            $os = 'offline';
        }
        else{
            $os = 'Unknown';
        }
        return $os;
    }


这个参考  http://blog.sina.com.cn/s/blog_68b0cad1010169vr.html  这个博客改编    eregi =》stristr  eregi(此函数php5.3废弃,php7.0删除)

2010-06-04 14:14:00 dante_k7 阅读数 1161

2019-08-21 14:29:05 qq_40414209 阅读数 50

https://www.jb51.net/article/42718.htm
相关函数: $_SERVER[‘HTTP_ACCEPT_LANGUAGE’];


<?php
header("content-type:text/html; charset=utf-8");
echo '<br />'.$_SERVER['HTTP_ACCEPT_LANGUAGE'].'<br />';

if(strrpos(strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']), 'zh-cn') !== false) {
    echo '<br />你的是中文操作系统<br />';
}
else
{
    echo '<br />非中文操作系统<br />';
}
?>
1 获取当前字符串的编码


$encode = mb_detect_encoding($str, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5')); 


2 将字符编码改为utf-8


$str_encode = mb_convert_encoding($str, 'UTF-8', $encode);

附:各国语言表
af 公用荷兰语
af-ZA 公用荷兰语 – 南非
sq 阿尔巴尼亚
sq-AL 阿尔巴尼亚 -阿尔巴尼亚
ar 阿拉伯语
ar-DZ 阿拉伯语 -阿尔及利亚
ar-BH 阿拉伯语 -巴林
ar-EG 阿拉伯语 -埃及
ar-IQ 阿拉伯语 -伊拉克
ar-JO 阿拉伯语 -约旦
ar-KW 阿拉伯语 -科威特
ar-LB 阿拉伯语 -黎巴嫩
ar-LY 阿拉伯语 -利比亚
ar-MA 阿拉伯语 -摩洛哥
ar-OM 阿拉伯语 -阿曼
ar-QA 阿拉伯语 -卡塔尔
ar-SA 阿拉伯语 – 沙特阿拉伯
ar-SY 阿拉伯语 -叙利亚共和国
ar-TN 阿拉伯语 -北非的共和国
ar-AE 阿拉伯语 – 阿拉伯联合酋长国
ar-YE 阿拉伯语 -也门
hy 亚美尼亚
hy-AM 亚美尼亚的 -亚美尼亚
az Azeri
az-AZ-Cyrl Azeri-(西里尔字母的) 阿塞拜疆
az-AZ-Latn Azeri(拉丁文)- 阿塞拜疆
eu 巴斯克
eu-ES 巴斯克 -巴斯克
be Belarusian
be-BY Belarusian-白俄罗斯
bg 保加利亚
bg-BG 保加利亚 -保加利亚
ca 嘉泰罗尼亚
ca-ES 嘉泰罗尼亚 -嘉泰罗尼亚
zh-HK 华 – 香港的 SAR
zh-MO 华 – 澳门的 SAR
zh-CN 华 -中国
zh-CHS 华 (单一化)
zh-SG 华 -新加坡
zh-TW 华 -台湾
zh-CHT 华 (传统的)
hr 克罗埃西亚
hr-HR 克罗埃西亚 -克罗埃西亚
cs 捷克
cs-CZ 捷克 – 捷克
da 丹麦文
da-DK 丹麦文 -丹麦
div Dhivehi
div-MV Dhivehi-马尔代夫
nl 荷兰
nl-BE 荷兰 -比利时
nl-NL 荷兰 – 荷兰
en 英国
en-AU 英国 -澳洲
en-BZ 英国 -伯利兹
en-CA 英国 -加拿大
en-CB 英国 -加勒比海
en-IE 英国 -爱尔兰
en-JM 英国 -牙买加
en-NZ 英国 – 新西兰
en-PH 英国 -菲律宾共和国
en-ZA 英国 – 南非
en-TT 英国 – 千里达托贝哥共和国
en-GB 英国 – 英国
en-US 英国 – 美国
en-ZW 英国 -津巴布韦
et 爱沙尼亚
et-EE 爱沙尼亚的 -爱沙尼亚
fo Faroese
fo-FO Faroese- 法罗群岛
fa 波斯语
fa-IR 波斯语 -伊朗王国
fi 芬兰语
fi-FI 芬兰语 -芬兰
fr 法国
fr-BE 法国 -比利时
fr-CA 法国 -加拿大
fr-FR 法国 -法国
fr-LU 法国 -卢森堡
fr-MC 法国 -摩纳哥
fr-CH 法国 -瑞士
gl 加利西亚
gl-ES 加利西亚 -加利西亚
ka 格鲁吉亚州
ka-GE 格鲁吉亚州 -格鲁吉亚州
de 德国
de-AT 德国 -奥地利
de-DE 德国 -德国
de-LI 德国 -列支敦士登
de-LU 德国 -卢森堡
de-CH 德国 -瑞士
el 希腊
el-GR 希腊 -希腊
gu Gujarati
gu-IN Gujarati-印度
he 希伯来
he-IL 希伯来 -以色列
hi 北印度语
hi-IN 北印度的 -印度
hu 匈牙利
hu-HU 匈牙利的 -匈牙利
is 冰岛语
is-IS 冰岛的 -冰岛
id 印尼
id-ID 印尼 -印尼
it 意大利
it-IT 意大利 -意大利
it-CH 意大利 -瑞士
ja 日本
ja-JP 日本 -日本
kn 卡纳达语
kn-IN 卡纳达语 -印度
kk Kazakh
kk-KZ Kazakh-哈萨克
kok Konkani
kok-IN Konkani-印度
ko 韩国
ko-KR 韩国 -韩国
ky Kyrgyz
ky-KZ Kyrgyz-哈萨克
lv 拉脱维亚
lv-LV 拉脱维亚的 -拉脱维亚
lt 立陶宛
lt-LT 立陶宛 -立陶宛
mk 马其顿
mk-MK 马其顿 -FYROM
ms 马来
ms-BN 马来 -汶莱
ms-MY 马来 -马来西亚
mr 马拉地语
mr-IN 马拉地语 -印度
mn 蒙古
mn-MN 蒙古 -蒙古
no 挪威
nb-NO 挪威 (Bokm?l) – 挪威
nn-NO 挪威 (Nynorsk)- 挪威
pl 波兰
pl-PL 波兰 -波兰
pt 葡萄牙
pt-BR 葡萄牙 -巴西
pt-PT 葡萄牙 -葡萄牙
pa Punjab 语
pa-IN Punjab 语 -印度
ro 罗马尼亚语
ro-RO 罗马尼亚语 -罗马尼亚
ru 俄国
ru-RU 俄国 -俄国
sa 梵文
sa-IN 梵文 -印度
sr-SP-Cyrl 塞尔维亚 -(西里尔字母的) 塞尔维亚共和国
sr-SP-Latn 塞尔维亚 (拉丁文)- 塞尔维亚共和国
sk 斯洛伐克
sk-SK 斯洛伐克 -斯洛伐克
sl 斯洛文尼亚
sl-SI 斯洛文尼亚 -斯洛文尼亚
es 西班牙
es-AR 西班牙 -阿根廷
es-BO 西班牙 -玻利维亚
es-CL 西班牙 -智利
es-CO 西班牙 -哥伦比亚
es-CR 西班牙 – 哥斯达黎加
es-DO 西班牙 – 多米尼加共和国
es-EC 西班牙 -厄瓜多尔
es-SV 西班牙 – 萨尔瓦多
es-GT 西班牙 -危地马拉
es-HN 西班牙 -洪都拉斯
es-MX 西班牙 -墨西哥
es-NI 西班牙 -尼加拉瓜
es-PA 西班牙 -巴拿马
es-PY 西班牙 -巴拉圭
es-PE 西班牙 -秘鲁
es-PR 西班牙 – 波多黎各
es-ES 西班牙 -西班牙
es-UY 西班牙 -乌拉圭
es-VE 西班牙 -委内瑞拉
sw Swahili
sw-KE Swahili-肯尼亚
sv 瑞典
sv-FI 瑞典 -芬兰
sv-SE 瑞典 -瑞典
syr Syriac
syr-SY Syriac-叙利亚共和国
ta 坦米尔
ta-IN 坦米尔 -印度
tt Tatar
tt-RU Tatar-俄国
te Telugu
te-IN Telugu-印度
th 泰国
th-TH 泰国 -泰国
tr 土耳其语
tr-TR 土耳其语 -土耳其
uk 乌克兰
uk-UA 乌克兰 -乌克兰
ur Urdu
ur-PK Urdu-巴基斯坦
uz Uzbek
uz-UZ-Cyrl Uzbek-(西里尔字母的) 乌兹别克斯坦
uz-UZ-Latn Uzbek(拉丁文)- 乌兹别克斯坦
vi 越南
vi-VN 越南 -越南

2015-08-11 15:53:46 iteye_5020 阅读数 98

PHP 获取浏览器版本及操作系统版本

偶然间搜索用php截取ua中的浏览器及操作系统信息,发现比较麻烦于是自己写了一个

$user_agent = $_SERVER['HTTP_USER_AGENT']; // 先取得UA
// echo $user_agent;

const REG_ALL = '/(Opera|OPR|Firefox|Chrome|Safari|MSIE|Navigator).(\d{1,3}\.\d{0,2})/i'; // 此处可以加入想要捕获的浏览器标识

preg_match(REG_ALL, $user_agent, $matches); // 这里查下PHP文档

/** 大致返回结果像这样
array (size=3)
    0 => string 'Firefox/39.0' (length=12)
    1 => string 'Firefox' (length=7)
    2 => string '39.0' (length=4)
 */

const REG_OS = '/(Windows NT|Win |Linux|Unix|Sun|Mac).(\d{1,3}\.\d{0,2})/i'; // 这里仅做了测试项目

preg_match(REG_OS, $user_agent, $matches); // 操作系统如是乎

/* 返回值类似这样似的,自己再做解析,6.1:Win7 5.1:XP 什么的
array (size=3)
  0 => string 'Windows NT 6.1' (length=14)
  1 => string 'Windows NT' (length=10)
  2 => string '6.1' (length=3)
*/
die();

 如此这般就好了,大部分浏览器都可以匹配,操作系统复杂些,不过一般windows环境下也够用。

 

钦此~!

 

2018-11-06 08:58:18 qq_36025814 阅读数 640

                                                                 PHP获取客户端浏览以及操作系统信息

PHP获取客户端浏览器以及操作系统信息是通过客户端浏览器传递过来的useragent信息进行判定的,因为客户端useragent信息可以伪造,所以通过PHP获取到的浏览器以及操作系统信息只能作为参考,如下代码还有待丰富的地方。

PHP中可以直接通过读取超全局数组$_SERVER['HTTP_USER_AGENT']进行正则匹配即可获取到相应的浏览和操作系统信息。说白了,就是对php的pcre兼容的正则表达式的理解。

一、获取客户端浏览器信息,包括版本号

    /**
     * 获取客户端浏览器信息 添加win10 edge浏览器判断
     * @param  null
     * @author  Jea杨
     * @return string 
     */
    function get_broswer(){
    	 $sys = $_SERVER['HTTP_USER_AGENT'];  //获取用户代理字符串
         if (stripos($sys, "Firefox/") > 0) {
             preg_match("/Firefox\/([^;)]+)+/i", $sys, $b);
             $exp[0] = "Firefox";
             $exp[1] = $b[1];  //获取火狐浏览器的版本号
         } elseif (stripos($sys, "Maxthon") > 0) {
             preg_match("/Maxthon\/([\d\.]+)/", $sys, $aoyou);
             $exp[0] = "傲游";
             $exp[1] = $aoyou[1];
         } elseif (stripos($sys, "MSIE") > 0) {
             preg_match("/MSIE\s+([^;)]+)+/i", $sys, $ie);
             $exp[0] = "IE";
             $exp[1] = $ie[1];  //获取IE的版本号
         } elseif (stripos($sys, "OPR") > 0) {
    		     preg_match("/OPR\/([\d\.]+)/", $sys, $opera);
             $exp[0] = "Opera";
             $exp[1] = $opera[1];  
         } elseif(stripos($sys, "Edge") > 0) {
             //win10 Edge浏览器 添加了chrome内核标记 在判断Chrome之前匹配
             preg_match("/Edge\/([\d\.]+)/", $sys, $Edge);
             $exp[0] = "Edge";
             $exp[1] = $Edge[1];
         } elseif (stripos($sys, "Chrome") > 0) {
    		     preg_match("/Chrome\/([\d\.]+)/", $sys, $google);
             $exp[0] = "Chrome";
             $exp[1] = $google[1];  //获取google chrome的版本号
         } elseif(stripos($sys,'rv:')>0 && stripos($sys,'Gecko')>0){
             preg_match("/rv:([\d\.]+)/", $sys, $IE);
    		     $exp[0] = "IE";
             $exp[1] = $IE[1];
         }else {
    		$exp[0] = "未知浏览器";
            $exp[1] = ""; 
    	 }
         return $exp[0].'('.$exp[1].')';
    }

二、获取客户端操作系统信息,包括粗略的版本信息

    /**
     * 获取客户端操作系统信息包括win10
     * @param  null
     * @author  Jea杨
     * @return string 
     */
    function get_os(){
    $agent = $_SERVER['HTTP_USER_AGENT'];
        $os = false;
     
        if (preg_match('/win/i', $agent) && strpos($agent, '95'))
        {
          $os = 'Windows 95';
        }
        else if (preg_match('/win 9x/i', $agent) && strpos($agent, '4.90'))
        {
          $os = 'Windows ME';
        }
        else if (preg_match('/win/i', $agent) && preg_match('/98/i', $agent))
        {
          $os = 'Windows 98';
        }
        else if (preg_match('/win/i', $agent) && preg_match('/nt 6.0/i', $agent))
        {
          $os = 'Windows Vista';
        }
        else if (preg_match('/win/i', $agent) && preg_match('/nt 6.1/i', $agent))
        {
          $os = 'Windows 7';
        }
    	  else if (preg_match('/win/i', $agent) && preg_match('/nt 6.2/i', $agent))
        {
          $os = 'Windows 8';
        }else if(preg_match('/win/i', $agent) && preg_match('/nt 10.0/i', $agent))
        {
          $os = 'Windows 10';#添加win10判断
        }else if (preg_match('/win/i', $agent) && preg_match('/nt 5.1/i', $agent))
        {
          $os = 'Windows XP';
        }
        else if (preg_match('/win/i', $agent) && preg_match('/nt 5/i', $agent))
        {
          $os = 'Windows 2000';
        }
        else if (preg_match('/win/i', $agent) && preg_match('/nt/i', $agent))
        {
          $os = 'Windows NT';
        }
        else if (preg_match('/win/i', $agent) && preg_match('/32/i', $agent))
        {
          $os = 'Windows 32';
        }
        else if (preg_match('/linux/i', $agent))
        {
          $os = 'Linux';
        }
        else if (preg_match('/unix/i', $agent))
        {
          $os = 'Unix';
        }
        else if (preg_match('/sun/i', $agent) && preg_match('/os/i', $agent))
        {
          $os = 'SunOS';
        }
        else if (preg_match('/ibm/i', $agent) && preg_match('/os/i', $agent))
        {
          $os = 'IBM OS/2';
        }
        else if (preg_match('/Mac/i', $agent) && preg_match('/PC/i', $agent))
        {
          $os = 'Macintosh';
        }
        else if (preg_match('/PowerPC/i', $agent))
        {
          $os = 'PowerPC';
        }
        else if (preg_match('/AIX/i', $agent))
        {
          $os = 'AIX';
        }
        else if (preg_match('/HPUX/i', $agent))
        {
          $os = 'HPUX';
        }
        else if (preg_match('/NetBSD/i', $agent))
        {
          $os = 'NetBSD';
        }
        else if (preg_match('/BSD/i', $agent))
        {
          $os = 'BSD';
        }
        else if (preg_match('/OSF1/i', $agent))
        {
          $os = 'OSF1';
        }
        else if (preg_match('/IRIX/i', $agent))
        {
          $os = 'IRIX';
        }
        else if (preg_match('/FreeBSD/i', $agent))
        {
          $os = 'FreeBSD';
        }
        else if (preg_match('/teleport/i', $agent))
        {
          $os = 'teleport';
        }
        else if (preg_match('/flashget/i', $agent))
        {
          $os = 'flashget';
        }
        else if (preg_match('/webzip/i', $agent))
        {
          $os = 'webzip';
        }
        else if (preg_match('/offline/i', $agent))
        {
          $os = 'offline';
        }
        else
        {
          $os = '未知操作系统';
        }
        return $os;  
    }

原文地址:《最新PHP获取客户端浏览以及操作系统信息

没有更多推荐了,返回首页