用 PHP 怎么获取用户 Windows 的内核版本号

2015-02-22 14:16:55 +08:00
 0x1e240
USER_AGENT: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0

想通过 USER AGENT 判断用户的操作系统类型,如果是 Windows 获取其中的内核版本号。比如上面的一个 USER AGENT,现在要把 Windows NT 6.3 中的内核版本 6.3 取出给一个变量要如何写?

不会 PHP,希望能够得到详细的指点。

3977 次点击
所在节点    Windows
24 条回复
sb
2015-02-22 15:01:08 +08:00
正则表达式取括号内的内容 把结果以;分割
0x1e240
2015-02-22 15:03:01 +08:00
@sb 这样怎么取到 6.3?求指教
oott123
2015-02-22 15:05:24 +08:00
/Windows NT ([0-9.])+;/
0x1e240
2015-02-22 15:09:15 +08:00
@oott123 能不能详细一点,这个看不懂
oott123
2015-02-22 15:12:05 +08:00
请自给自足。
这是一个正则表达式,你可能需要用到 preg_match 。
我手头没有手册,记不住这个函数定义,请自己到 php.net 上查一下。
huijiewei
2015-02-22 15:24:22 +08:00
MinonHeart
2015-02-22 15:31:48 +08:00
@oott123
<?php
//mytest
$agent = 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36';
preg_match('/Windows NT ([0-9.])+;/', $agent, $full);
preg_match('/([0-9.])+/', $full[0], $lite);
$version = $lite[0];
echo $version;
?>
我这样写能够取得 6.3,不知道有没有什么问题
0x1e240
2015-02-22 15:34:09 +08:00
@huijiewei 不需要那么复杂的
oott123
2015-02-22 15:45:33 +08:00
@MinonHeart 呃,$full[1] 不就有了…
MinonHeart
2015-02-22 15:54:43 +08:00
@oott123 $full[1]是 3 不是 6.3
MinonHeart
2015-02-22 15:56:09 +08:00
@oott123 preg_match('/Windows NT ([0-9.]+);/', $agent, $full);
这样写 $full[1] 就有了,写错不要打我
msxcms
2015-02-22 16:40:28 +08:00
不会正则就explode或者strstr吧
ven
2015-02-22 17:23:11 +08:00
这样干的话,还要考虑其他系统的时候怎么显示噢。
oott123
2015-02-22 18:32:24 +08:00
@MinonHeart 233 括号打错位置了,你写的是对的。
codegear
2015-02-22 19:59:25 +08:00
@oott123
@MinonHeart
伸出手就有糖吃,真好!!
loading
2015-02-22 20:01:35 +08:00
建议使用 @huijiewei 回复的,ua识别实在没必要自己造轮子了。
belin520
2015-02-22 20:08:24 +08:00
@codegear 现在的网友真热心
0x1e240
2015-02-22 22:43:35 +08:00
@ven
@loading
只要Win的版本号,不是Win直接else
MaiCong
2015-02-22 23:59:51 +08:00
建议楼主善用搜索,很多问题搜一下就解决了。如果在这里等别人回复,自己得到了答案,可是过程是什么你知道吗。
jimmy66
2015-02-23 00:10:18 +08:00
这和会不会PHP关系不大,你应该学下正则表达式。花点时间你不会后悔的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/172162

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX