2011-12-28 34 views
6

tôi phải kiểm tra tập lệnh của mình cho tác nhân người dùng dành cho thiết bị di động.Đại lý người dùng di động regexp

tôi có

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

tôi phát hiện ra lg một cần phải được phần đầu của chuỗi

ví dụ:

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

về cơ bản tôi muốn biết nếu nó có thể tìm thấy nếu chuỗi (từ regexp của tôi) có thể được tìm thấy trong tác nhân người dùng bắt đầu từ đầu, không phải một nơi nào đó trong chuỗi.

tôi muốn không thay đổi chuỗi regex tôi

nhờ

Trả lời

11

Bạn có thể sử dụng ký tự meta ^ để biểu thị sự khởi đầu của chuỗi. Bạn có thể đọc thêm về nó here. Các mô hình sau đây sẽ chỉ phù hợp lg nếu nó trong sự bắt đầu của chuỗi:

^lg|iphone|blackberry|opera/ 

Bạn có thể thấy một ví dụ đơn giản nó trong hành động ở đây: http://regexr.com?2vjec

+0

cảm ơn, nó hoạt động hoàn hảo – aki

-2

Tôi đang sử dụng thư viện này để phát hiện hệ điều hành và trình duyệt Thông tin http://chrisschuld.com/projects/browser-php-detecting-a-users-browser-from-php/

+8

không làm việc, tôi có 'Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0) LG; LG-E900 ' và nó không nói đó là điện thoại di động VÀ tôi nói os của tôi là ** un biết **. cũng thế. nó nói ** iPhone 4 ** và tác nhân người dùng của tôi là 'Mozilla/5.0 (iPhone; U; CPU hệ điều hành iPhone 3_0 như Mac OS X; en-us) ' – aki

Các vấn đề liên quan