Làm cách nào để phát hiện tác nhân người dùng trong PHP?

Trong hướng dẫn này, chúng ta sẽ xem cách phát hiện trình duyệt của người dùng bằng ngôn ngữ lập trình PHP. Ở đây chúng ta sẽ tạo hàm PHP tùy chỉnh của riêng mình mà chúng ta có thể gọi sau này để tải trình duyệt

Chúng tôi sẽ sử dụng biến toàn cầu $_SERVER. $_SERVER[‘HTTP_USER_AGENT’] có thể trả về nhiều thông tin khác nhau liên quan đến trình duyệt

Bây giờ bên dưới là chức năng PHP của chúng tôi mà chúng tôi có thể sử dụng để hiển thị trình duyệt

Trong đoạn mã trên, chúng tôi đang kiểm tra từng trình duyệt có thể có và trả về tên trình duyệt. Ở đây chúng tôi chưa kiểm tra Mozilla vì hầu hết trình duyệt sử dụng chuỗi này làm chuỗi tác nhân người dùng

Dưới đây là cách hiển thị tên trình duyệt trên trang web của chúng tôi

echo get_the_browser();

Chúng tôi sẽ có thể thấy trình duyệt

Lưu ý rằng, điều này sẽ không luôn cung cấp cho chúng tôi thông tin chính xác. Phát hiện trình duyệt phía máy chủ có thể sai. Vì vậy, phát hiện trình duyệt phía máy khách tốt hơn phát hiện phía máy chủ. Chúng tôi có thể sử dụng JavaScript để phát hiện trình duyệt từ phía máy khách

3 phản hồi cho “Phát hiện trình duyệt trong PHP”

  1. anonymus nói.

    Nó không thể phát hiện chrome trong iphone. Nó nói đi săn

    • NoMoreCorporateOverlords nói.

      Theo những gì tôi hiểu, Chrome trên iOS chỉ đơn giản là một trình bao bọc trên Safari. Do yêu cầu “tăng trưởng tài chính hay chết” của công ty, Apple không dễ dàng từ bỏ quyền kiểm soát người tiêu dùng và việc thu thập dữ liệu người tiêu dùng cho bên thứ ba

      Bạn đã bao giờ ước mình có thể làm cho một trang web hoạt động theo trình duyệt mà nó đang được xem chưa? . Tuy nhiên, còn những trường hợp CSS không thể giúp chúng ta thì sao? . Vì vậy, bạn có tránh xa việc sử dụng nội dung tùy chỉnh trong các trình duyệt đó không?

      Nhập phát hiện trình duyệt PHP. Chỉ với một chút mã, trang web của bạn có thể đạt được tiềm năng tối đa trong mọi trình duyệt và ngay cả trên thiết bị di động

      Một số cách sử dụng phổ biến để phát hiện trình duyệt bao gồm

      • – tránh chuyển đổi JavaScript giật cục bằng cách cung cấp các phiên bản khác nhau của tập lệnh tùy theo hiệu suất của trình duyệt hoặc thiết bị
      • – cung cấp nội dung thay thế cho trình duyệt iPhone nơi Flash sẽ được sử dụng
      • – loại bỏ các yếu tố gây ra sự cố kết xuất trong một số trình duyệt nhưng không cần thiết
      • – tự động điền biểu mẫu bằng trình duyệt và phiên bản hiện tại cho các mục đích sửa lỗi đơn giản

      Để biết cách sử dụng, hãy tải trang này trong Chrome hoặc Safari và xem tiêu đề. Bây giờ hãy tải nó trong Internet Explorer. Những khác biệt tinh tế mà bạn thấy trong tiêu đề cho phép mã chạy trơn tru hơn trên thiết bị di động và IE. Và mặc dù nó trông không giống hệt nhau, nhưng tôi không gặp vấn đề gì với việc xây dựng thương hiệu hoạt hình dễ nhận biết làm tay cầm của mình. Nói đủ rồi - bắt đầu nào

      Mã ví dụ cơ bản

      Đây là một triển khai của mã này khi nó xuất hiện trong tiêu đề. php của trang web này

      PHP

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      <. -- Đầu trang Menu -->

      <div id="logo"><a href=" bloginfo('url'); ?>"><img src=" bloginfo('template_directory'); ?>/images/logo.png" /></a></div>

       

      $user_agent = $_SERVER['HTTP_USER_AGENT'];

       

      if (preg_match('/iphone/i, $user_agent))

      wp_nav_menu( mảng('menu' => 'topnavie' ));

       

      elseif (preg_match('/MSIE/i . ,$u_agent) && !preg_match('/Opera/i',$u_agent))

      wp_nav_menu( mảng('menu' => 'topnavie' ));

      }

       

      khác {

      wp_nav_menu( mảng('menu' => 'topnav' ));

      in

      ''''''''''''';

      };

      ?>

      Như bạn có thể thấy ở đây, tôi đang sử dụng một dòng mã duy nhất yêu cầu máy chủ kiểm tra tác nhân người dùng. Sau đó, chúng tôi chỉ sử dụng các câu lệnh PHP bình thường để xác định những gì sẽ được hiển thị trong mỗi trình duyệt. Đầu tiên, tôi kiểm tra cả iPhone và IE và cung cấp phiên bản rút gọn của menu trang web của tôi. Sau đó, tôi phục vụ mọi thứ khác một phiên bản cải tiến hơn của cùng một thực đơn đó. Tất nhiên, đây là tất cả khá cơ bản cho đến nay

      Đi sâu hơn một chút

      Nhưng nếu bạn cần nhắm mục tiêu các trình duyệt khác thì sao?

      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

       

      // kiểm tra trình duyệt mà khách truy cập đang sử dụng

      $user_agent = $_SERVER['HTTP_USER_AGENT'];

       

      // Bit này phân biệt IE với Opera

      if(preg_match('/MSIE/i . ,$u_agent) && !preg_match('/Opera/i',$u_agent))

      {

      in

      'Đây là Internet Explorer. (Chèn trò đùa vào đây)';

      }

      elseif(preg_match('/mozilla/i . ,$u_agent) && !preg_match('/ compatible/', $userAgent))

      {

      in

      'Đây là FireFox. ';

      }

      // để Chrome được nhận diện là Safari

      elseif(preg_match('/webkit/i,$u_agent))

      {

      in

      'Đây là Chrome hoặc Safari. ';

      }

      elseif(preg_match('/Opera/i,$u_agent))

      {

      in

      'Đây là Opera. Thích sống ngoài rìa nhỉ?';

      }

      elseif(preg_match('/Netscape/i,$u_agent))

      {

      in

      'Đây là Netscape, và bạn thực sự cần phải nâng cấp. ';

      }

       

      ?>

      Bây giờ, có một số điều cần được giải thích ở đây, ngay cả trước khi chúng ta thực sự nhập mã. Trình duyệt opera trước đây đã gặp nhiều sự cố liên quan đến giả mạo tác nhân người dùng. Việc giả mạo này là cần thiết vì trình duyệt MSN và IE cho phép các nhà phát triển chỉ cung cấp nội dung cho phần mềm của họ (vào thời điểm đó, được coi là hàng đầu). Khá nhiều, đây là nỗ lực của IE nhằm phá hoại web để sử dụng trình duyệt của họ khi không cần thiết, không phải lựa chọn (tisk, tisk, IE). Để nội dung đó hiển thị trong Opera, các nhà phát triển của họ nhận thấy cần phải giả mạo tác nhân người dùng của họ để trông và hành động giống như IE. Bây giờ, điều này thực sự không còn là vấn đề quá lớn kể từ năm 2005, khi Opera 8. 02 đã được phát hành với tùy chọn sử dụng chuỗi tác nhân người dùng của riêng nó (và cuối cùng đã phát triển thành một trình duyệt lớn… đại loại vậy) Nhưng với tư cách là nhà phát triển, chúng ta phải nhớ rằng nội dung cần được phục vụ cho nhiều đối tượng nhất có thể (như một số

      Vì vậy, tại sao tôi lại bắt bạn ngồi đọc qua lời giải thích quanh co đó? . Lưu ý rằng chúng tôi không chỉ phát hiện trình duyệt IE mà còn phát hiện có điều kiện đối với “nếu không phải opera. ” Điều này sẽ bảo vệ chống lại tất cả hành vi giả mạo khó chịu của tác nhân người dùng dành cho những người chạy phiên bản Opera dưới 8 tuổi. 02. Nhưng đó không phải là tất cả. Lưu ý rằng sau này chúng tôi cũng phát hiện tác nhân người dùng opera không có điều kiện nào khác. Điều này sẽ giải quyết tất cả các phiên bản Opera sau này không gặp phải nội dung giả mạo

      Vẫn còn với tôi? . Nó không thực sự giả mạo, nhưng cả Chrome và Safari đều sử dụng tác nhân người dùng 'webkit' (rất quen thuộc với bất kỳ ai đã viết CSS3). Vì vậy, sử dụng tập lệnh của chúng tôi, Chrome sẽ luôn được nhận dạng là Safari (trình duyệt webkit mặc định). Đây thực sự không phải là vấn đề nếu bạn chỉ muốn nội dung của mình được phục vụ giống hệt nhau trên các trình duyệt. Tuy nhiên, nếu bạn đang muốn cung cấp nội dung khác nhau cho hai trình duyệt đó, giải pháp này sẽ không phù hợp với bạn

      Phát hiện phiên bản trình duyệt

      Vậy còn những trường hợp khi bạn thực sự cần cung cấp nội dung thay thế cho các phiên bản trình duyệt cụ thể (bạn có thể nói là IE6) thì sao?

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

       

      // kiểm tra trình duyệt mà khách truy cập đang sử dụng

      $user_agent = $_SERVER['HTTP_USER_AGENT'];

       

      // Bit này phân biệt IE với Opera

      if(preg_match('/(?i . ,$u_agent) && !preg_match('/Opera/i',$u_agent) && ) {

      // nếu IE<=6

      in

      'Đây là IE6 trở xuống (trình duyệt của dooooom khét tiếng. )';

      }

      khác {

      // nếu IE>6

      in

      'Đây là IE7 trở lên. ';

      }

       

      ?>

      Vì vậy, những gì chúng tôi đã làm ở đây là thêm các phiên bản chính vào chuỗi phát hiện 'preg_match' của chúng tôi. Trong trường hợp này, chúng tôi sẽ kiểm tra các phiên bản IE 1-6 và cung cấp một số nội dung cho các phiên bản đó. Nếu điều đó không khớp với phiên bản, chúng tôi có thể cho rằng người dùng đang sử dụng IE7 trở lên và cung cấp cho họ nội dung thay thế cho các phiên bản trình duyệt đó

      Vậy là bạn đã có nó… phát hiện trình duyệt đơn giản không sử dụng gì ngoài một vài dòng PHP. Trong một số ít trường hợp, tập lệnh này có thể tạo ra thông báo sai (ví dụ: nếu IE đang được chạy ở chế độ tương thích). Trong những trường hợp đó, tốt nhất bạn nên chạy trang web của mình thông qua CMS và sử dụng plugin được đóng gói sẵn. Tôi biết có một số ít dành cho WordPress, nhưng hầu hết đều có nhiều mã hơn mức cần thiết cho hầu hết các mục đích sử dụng. Nếu bạn đã tìm thấy một trong những plugin này, hãy cho tôi biết về nó trong phần bình luận

      Làm cách nào để tìm tác nhân người dùng trong PHP?

      Trong trường hợp này, bạn có thể sử dụng biến $_SERVER['HTTP_USER_AGENT'] để tìm tác nhân người dùng trình duyệt.

      HTTP_USER_AGENT trong PHP là gì?

      user_agent. Đó là tham số tùy chọn chỉ định tên của tác nhân người dùng HTTP . Mặc định là giá trị của $HTTP_USER_AGENT. return_array. Đó là một tham số tùy chọn trả về một mảng thay vì một đối tượng nếu nó được đặt thành True.

      Làm cách nào để kiểm tra trình duyệt nào đang được sử dụng trong PHP?

      Hàm PHP get_browser() echo $_SERVER['HTTP_USER_AGENT']; $browser = get_browser(); print_r($browser);

      Làm cách nào để lấy tên thiết bị người dùng trong PHP?

      Cách dễ nhất để phát hiện thiết bị di động trong PHP là kiểm tra xem từ “mobile” có tồn tại trong Tác nhân người dùng HTTP không. .
      Sử dụng biến $_SERVER với các chỉ số HTTP_USER_AGENT để sử dụng Tác nhân người dùng để truy cập trang web
      Dựa trên Tác nhân người dùng HTTP, bạn có thể phát hiện thiết bị di động hoặc máy tính để bàn trong PHP