2011-12-28 28 views
6

我必须检查我的用于移动用户代理的脚本。移动正则表达式用户代理

我有

if(preg_match('/lg|iphone|blackberry|opera/i', $_SERVER['HTTP_USER_AGENT'])) { ... } 

我发现了lg一个需要是字符串的

如第一部分:

lg-9000 ... 
lg1000 ... 
lg 2000 ... 
lge4300 ... 

基本上,我想知道是否有可能发现字符串(来自我的正则表达式)是否可以在用户代理中从头开始,而不是在字符串中的某处。

我想不会改变我的正则表达式字符串

感谢

回答

11

可以使用元字符^表示字符串的开始。你可以阅读更多关于它here。下面的模式将只匹配lg,如果它在字符串的开头:

^lg|iphone|blackberry|opera/ 

你可以看到在这里的行动一个简单的例子吧:http://regexr.com?2vjec

+0

感谢,它完美 – aki 2011-12-28 20:11:41

-2

我使用这个库来检测操作系统和浏览器信息 http://chrisschuld.com/projects/browser-php-detecting-a-users-browser-from-php/

+8

不工作,我有'的Mozilla/4.0(兼容; MSIE 7.0; Windows手机OS 7.0;三叉戟/ 3.1; IEMobile/7.0),LG,LG-E900 ',它不说这是一部手机,我说我的操作系统是** un知道**。也。它说** iPhone 4 **和我的用户代理是'Mozilla/5.0(iPhone; U; CPU iPhone OS 3_0,如Mac OS X; en-us)' – aki 2011-12-28 20:09:38