
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,希望能够得到详细的指点。
1 sb 2015 年 2 月 22 日 via Android 正则表达式取括号内的内容 把结果以;分割 |
3 oott123 2015 年 2 月 22 日 via Android /Windows NT ([0-9.])+;/ |
5 oott123 2015 年 2 月 22 日 via Android |
6 huijiewei 2015 年 2 月 22 日 |
7 MinonHeart 2015 年 2 月 22 日 @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,不知道有没有什么问题 |
9 oott123 2015 年 2 月 22 日 via Android @MinonHeart 呃,$full[1] 不就有了… |
10 MinonHeart 2015 年 2 月 22 日 @oott123 $full[1]是 3 不是 6.3 |
11 MinonHeart 2015 年 2 月 22 日 @oott123 preg_match('/Windows NT ([0-9.]+);/', $agent, $full); 这样写 $full[1] 就有了,写错不要打我 |
12 msxcms 2015 年 2 月 22 日 不会正则就explode或者strstr吧 |
13 ven 2015 年 2 月 22 日 这样干的话,还要考虑其他系统的时候怎么显示噢。 |
14 oott123 2015 年 2 月 22 日 @MinonHeart 233 括号打错位置了,你写的是对的。 |
15 codegear 2015 年 2 月 22 日 |
19 MaiCong 2015 年 2 月 22 日 建议楼主善用搜索,很多问题搜一下就解决了。如果在这里等别人回复,自己得到了答案,可是过程是什么你知道吗。 |
20 jimmy66 2015 年 2 月 23 日 这和会不会PHP关系不大,你应该学下正则表达式。花点时间你不会后悔的 |
23 jimmy66 2015 年 2 月 26 日 @MinonHeart 其实我想问下为什么这种写法$full[1]匹配的都是最后一个数字,能做到 ([0-9.])+ 一个个对应匹配吗? 比如 6->1 . ->2 3->3 |
24 MinonHeart 2015 年 2 月 26 日 @jimmy66 <?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, $version); echo $version[1][0] . "<br>"; echo $version[1][1] . "<br>"; echo $version[1][2] . "<br>"; //可以加个判断 $version[1] 的长度进行循环输出 //也考虑到 Windows NT 10.0 这种内核版本号的长度不定 ?> |