Cách lấy tác nhân người dùng trong PHP


78

Tôi đang sử dụng mã JS này để biết người dùng đang sử dụng trình duyệt nào.

<script>
  document.write(navigator.appName);
</script>

Và tôi muốn lấy Navigator.appName này thành mã php để sử dụng nó như sau:

if ($appName == "Internet Explorer") {
  // blabla
}

Tôi làm nó như thế nào?


Câu trả lời:


209

Sử dụng $_SERVER['HTTP_USER_AGENT']biến PHP gốc để thay thế.


11
Chú ý, điều này không thể được thiết lập!
Thomas Decaux

10
Trong PHP7 +, bạn có thể viết $_SERVER['HTTP_USER_AGENT']??nullđể có nó trả về null thay vì ném ra một lỗi khi nó không được định nghĩa
Brian Leishman

Hoặc làm điều này, nếu bạn chỉ muốn thực hiện các thao tác chuỗi sau đó và không muốn quan tâm đến null hoặc không được đặt: $ ua = $ _SERVER ['HTTP_USER_AGENT']. '';
user2078023

22
Hoặc đơn giản là kiểm tra bằng isset()... Mã sạch và dễ đọc phải luôn được ưu tiên cao.
StanE

4

Bạn cũng có thể sử dụng php native funcion get_browser ()

LƯU Ý QUAN TRỌNG: Bạn nên có tệp browscap.ini.


3
Điều này đòi hỏi bạn phải có một up-to-date browscap.ini tập tin
nullability

1
nó làm và có khá ít tài nguyên trực tuyến, nơi bạn có thể tải một cho trang web của bạn, chẳng hạn như browscap.org
Aurovrata

1
trả về null hoặc false
Fernando Torres

2
đảm bảo rằng bạn có tệp browscap.ini
Aurovrata

2

Bạn có thể sử dụng liên kết jQuery ajax method nếu bạn muốn truyền dữ liệu từ máy khách đến máy chủ. Trong trường hợp này, bạn có thể sử dụng $_SERVER['HTTP_USER_AGENT']biến để tìm tác nhân người dùng trình duyệt.


1
cái này có hoạt động không $_SERVER['USER_AGENT']?? Nên $_SERVER['HTTP_USER_AGENT']chăng ???
jogesh_pi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.