Php phát hiện tác nhân người dùng

Trước đây trên Mobiforge Ronan đã đăng về một cách tiếp cận nhẹ để phát thiết bị hiện bằng cách sử dụng các biểu thức thông thường trong PHP. Vì đây vẫn là một chặng đường tiếp cận được nhiều nhà phát triển web áp dụng ngày nay, chúng tôi cảm thấy rằng đó là khoảng thời gian chúng tôi xem lại bài viết gốc

Đối với những người mới tham gia chủ đề, cách tiếp cận hoạt động bằng cách khớp chuỗi thiết bị di động của người dùng bằng cách sử dụng các biểu thức thông thường. Như chúng tôi đã đề cập trong bài viết gốc, sử dụng giải pháp PHP Regex để phát hiện các thiết bị có thể là một giải pháp tốt cho các trường hợp sử dụng nhất định. Ví dụ, đối với các trang web nhỏ hơn mà không lưu lượng truy cập lớn hoặc nơi chủ sở hữu trang web không quá quan tâm đến việc phát hiện lưu lượng di động của họ với độ chính xác rất cao hoặc mục tiêu được chuyển đổi

Trong bài viết này, chúng tôi cung cấp một phiên bản cập nhật mới của thuật toán gốc bao gồm phát hiện bảng máy tính rõ ràng, cho những người muốn tối ưu hóa cho khách hàng truy cập bảng máy tính của họ và chúng tôi cũng mở rộng

Nhưng trước khi tôi nhảy vào, có những hạn chế mà bạn nên biết trước khi chọn tùy chọn này

  • Độ chính xác-Kết quả hợp tác nhân người dùng Regex có thể hoạt động tốt trong trường hợp chung, nhưng chắc chắn sẽ không nhận ra một phần của thiết bị theo cách chính xác, ví dụ:. Một số máy tính bảng Android. Và mặc dù có thể thêm các công cụ mẫu có thể thay thế vào regex để phù hợp với các trường hợp cạnh bằng cách khớp với các số mô hình công cụ có thể, điều này có nhược điểm là giảm sự hoàn thiện của sự phát triển hiện tại và sẽ có ý nghĩa . g. một số máy tính bảng Android. Và mặc dù có thể thêm các mẫu cụ thể hơn vào biểu thức chính quy để khớp với các trường hợp cạnh bằng cách khớp với các số kiểu cụ thể, nhưng điều này có nhược điểm là làm giảm hiệu suất phát hiện và sẽ có ý nghĩa về hiệu suất cho trang web của bạn – . g. một số máy tính bảng Android. Và mặc dù có thể thêm các mẫu cụ thể hơn vào biểu thức chính quy để khớp với các trường hợp cạnh bằng cách khớp với các số kiểu cụ thể, nhưng điều này có nhược điểm là làm giảm hiệu suất của phát hiện và sẽ có tác động thúc đẩy hiệu suất cho trang web của bạn
  • Hiệu suất - Biểu thức chính quy có thể từ từ thực hiện, đặc biệt đối với các mẫu phức tạp. Nếu hiệu suất là yếu tố quan trọng đối với bạn, thì đây không phải là cách để đi – Biểu thức chính quy có thể thực thi chậm, đặc biệt đối với các mẫu phức tạp. Nếu hiệu suất là yếu tố chính đối với bạn, thì đây không phải là cách để thực hiện – Biểu thức chính quy có thể thực thi chậm, đặc biệt đối với các mẫu phức tạp. Nếu hiệu suất là một yếu tố quan trọng đối với bạn, thì đây không phải là cách để đi
  • Bảo trì - Các mẫu Regex cần được cập nhật thường xuyên để cập nhật các thiết bị mới có thể chưa được cập nhật – Các mẫu regex sẽ cần được cập nhật thường xuyên để cập nhật các thiết bị mới có thể chưa được cập nhật
  • Khả năng của thiết bị - Nếu bạn cần bất cứ điều gì khác hơn định tuyến lưu lượng truy cập đơn giản [di động/bảng máy tính/máy tính để bàn], ví dụ, nếu bạn cần biết các thuộc tính của thiết bị như . v. cho bạn – Nếu bạn cần bất cứ điều gì hơn là định tuyến lưu lượng truy cập đơn giản [thiết bị di động/máy tính bảng/máy tính để bàn], chẳng hạn nếu bạn cần biết các thuộc tính của thiết bị như kích thước màn hình, giới hạn bộ nhớ, hỗ trợ HTML5, v.v., thì đây không phải là giải pháp

Vì vậy, với những cảnh báo đó, thời gian cho mã

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

$tablet_browser=0;=0; = 0;

$mobile_browser=0;=0; = 0;

if [preg_match ['/[máy tính bảng. ipad. vở kịch]. [Android [?. *[di động. opera mini]]]/i', strtolower [$ _ server ['http_user_agent']]][preg_match['/[máy tính bảng. ipad. vở kịch]. [Android[?. *[di động. opera mini]]]/i',strtolower[$_SERVER['HTTP_USER_AGENT']]]]{[preg_match['/[tablet|ipad|playbook]|[android[?!.*[mobi|opera mini]]]/i',strtolower[$_SERVER0]or[[isset[$_SERVER['HTTP_X_WAP_PROFILE']]orisset[$_SERVER['HTTP_PROFILE']]]]]{[[strpos[strtolower[$_SERVER['HTTP_ACCEPT']], . wap. xhtml+xml']>0]or[[isset[$_SERVER['HTTP_X_WAP_PROFILE']]orisset[$_SERVER['HTTP_PROFILE']]]]]{[[strpos[strtolower[$_SERVER['HTTP_ACCEPT']],'application/vnd.wap.xhtml+xml']>0]or [[isset[$_SERVER['HTTP_X_WAP_PROFILE']]orisset[$_SERVER['HTTP_PROFILE']]]]]{

    $mobile_browser++;$mobile_browser++;$mobile_browser ++ ;

}

$mobile_ua=strtolower[substr[$_SERVER['HTTP_USER_AGENT'],0,4]];=strtolower[substr[$_SERVER['HTTP_USER_AGENT'],0,4]];=strtolower[substr[$_SERVER['HTTP_USER_AGENT'],0,4]];

$mobile_agents=array[=array[ = array[

if [preg_match ['/[lên. trình duyệt. lên. liên kết. mmp. cộng hưởng từ. điện thoại thông minh. trung gian. wap. điện thoại. 'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac','w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',

    'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno','blaz', 'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',

    'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge- 'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',

    'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-','maui' 'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',

    'newt','noki','palm','pana','pant','phil','play','port','prox','newt','noki',' 'newt','noki','palm','pana','pant','phil','play','port','prox',

    'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar','qwap 'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',

    'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-', 'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',

    'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',' 'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',

& nbsp; 'wapr','webc','winw','winw','xda ','xda-'];

if[in_array[$mobile_ua,$mobile_agents]]{[in_array[$mobile_ua,$mobile_agents]]{[in_arrayin_array0]{[$tablet_browser>0]{

if [preg_match ['/[lên. trình duyệt. lên. liên kết. mmp. cộng hưởng từ. điện thoại thông minh. trung gian. wap. điện thoại. // làm gì đó cho thiết bị máy tính bảng// làm gì đó cho thiết bị máy tính bảng

& nbsp; print'is tablet';

}

elseif[$mobile_browser>0]{if[$mobile_browser>0]{if[$mobile_browser>0]{

& nbsp; // do something for mobile devices

& nbsp; print'is mobile';

}

khác{{{

& nbsp; // do something for everything else

& nbsp; print'is desktop';

& nbsp;   

 

}  

?>

Như trong bài viết trước của chúng tôi, dựa trên công việc của Andy Moore. Cách tiếp cận gần được thực hiện để phát hiện bảng máy tính là một mẫu phù hợp chung, [chủ yếu]. Nó sẽ hoạt động hợp lý và sẽ phù hợp với bạn nếu phát hiện chính xác từng thiết bị máy tính bảng là không quan trọng. Nó có thể sẽ thất bại trên một phần định dạng nhất của bảng máy tính rất khó để phân biệt với các đối tác di động của họ mà không chỉ xác định các số mô hình riêng lẻ

Làm thế nào bạn có thể phát hiện một thiết bị di động bằng PHP?

Bạn có thể sử dụng http_user_agent để kiểm tra loại thiết bị [di động/máy tính bảng/máy tính để bàn] và nền tảng [windows/android/iOS] bằng PHP. sử dụng HTTP_USER_AGENT để kiểm tra loại thiết bị [di động/máy tính bảng/máy tính để bàn] và nền tảng [windows/android/iOS] bằng PHP. sử dụng HTTP_USER_AGENT để kiểm tra loại thiết bị [di động/máy tính bảng/máy tính để bàn] và nền tảng [windows/android/iOS] bằng PHP .

Làm cách nào để có được thiết bị chi tiết trong PHP?

php $ userAgent = $ _ server ['http_user_agent'];if [preg_match ['/[android. bb \ d+. meo]. .

Giải nén tệp vào một thư mục trong máy chủ PHP của bạn

Sau đó thêm mã sau vào trang PHP của bạn

Tất cả các thiết bị thông tin có sẵn sẽ được chứa trong mảng $ _51D

Cách tốt nhất để phát JavaScript device di động là gì?

matchmedia[] window. MatchMedia [] là một trong những thuộc tính tốt nhất để phát hiện người dùng di động với JavaScript. Cửa sổ. matchMedia[] là một trong những thuộc tính tốt nhất để phát hiện người dùng di động bằng JavaScript

Chủ Đề