2011-12-28 26 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