Thực sự có nhiều cách để phát hiện trình duyệt. Nhưng, là một trong những câu trả lời, trình duyệt, lập chỉ mục các bot bắt chước rộng rãi tên thật của chúng, vì vậy, một khi chức năng thủ công thành công có thể ngừng hoạt động tốt bất cứ lúc nào.
Đôi khi phát hiện trình duyệt nếu bạn đang in một cái gì đó với trình duyệt cụ thể trong đó các quy tắc phương tiện CSS được thực hiện kém trong khả năng tương thích của trình duyệt vào ngày tôi trả lời.
Cách đơn giản không đáng tin cậy
Chỉ để lấy trình duyệt cụ thể bằng chuỗi UA, bạn có thể sử dụng chức năng như thế [một ngã ba được sửa đổi từ đây]:
function get_browser_manually[] {
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$browser = "n/a";
$browsers = array[
'/msie/i' => 'Internet explorer',
'/IE/i' => 'Internet explorer',
'/Edg/i' => 'Edge',
'/gecko/i' => 'Firefox',
'/fox/i' => 'Firefox',
'/safari/i' => 'Safari',
'/opera/i' => 'Opera',
'/mobile/i' => 'Mobile browser',
'/phone/i' => 'Mobile browser',
'/Yowser/i' => 'Yandex Browser',
'/Ya/i' => 'Yandex Browser',
'/Presto/i' => 'Opera',
'/Chrome/i' => 'Chrome'
];
foreach [$browsers as $regex => $value] {
if [preg_match[$regex, $user_agent]] {
$browser = $value;
return $browser;
}
}
}
echo "Browser: " . get_browser_manually[];
Được xây dựng theo cách và đáng tin cậy
PHP đã tích hợp trong hàm get_browser [] để có trình duyệt và nền tảng. Trước PHP7, nó đã chậm, nhưng, bây giờ nó đã trở nên nhanh chóng hơn nhiều.get_browser[] function to get browser and platform. Prior to PHP7 it was slow, but, now it reportedly became much quicker.
Để làm cho điều này hoạt động, bạn cần tải xuống tệp bổ sung [nhỏ, vừa, lớn tùy thuộc vào nhu cầu chính xác phát hiện của bạn] từ browscap.org, sao chép tệp vào thư mục PHP và đưa nó vào php.ini:php.ini:
[browscap]
; //php.net/browscap
browscap = C:\PHP\extras\lite_php_browscap.ini
Trong tập lệnh PHP thì bạn có thể gọi get_browser [] và sử dụng đầu ra:
$browser = get_browser[null, true];
echo '';
echo print_r[$browser,1];
echo '
';
Đầu ra cho Chrome sẽ là một cái gì đó như thế này:
Array
[
[browser_name_regex] => ~^mozilla/5\.0 \[.*windows nt 10\.0.*\] applewebkit ... ...
[browser_name_pattern] => Mozilla/5.0 [*Windows NT 10.0*] applewebkit... ...
[parent] => Chrome 89.0
[platform] => Win10
[comment] => Chrome 89.0
[browser] => Chrome
[version] => 89.0
[device_type] => Desktop
[ismobiledevice] =>
[istablet] =>
]
Nếu bạn cần kiểm tra các trình duyệt khác, hãy xem xét mở rộng trình chuyển đổi người dùng nhẹ cho Chrome:
Lưu ý: Tệp Browsecap không phải là cấu hình mặc định và bị tắt theo mặc định. Đảm bảo bạn gọi get_browser [] một cách an toàn bằng cách kiểm tra xem nó có sẵn để được gọi không: browsecap file is not default configuration, and disabled by default. Make sure you call get_browser[] safely by checking if it is available to be called:
if [!ini_get['browscap']] {
// Not set, use other custom func to detect browser:
$browser = get_browser_manually[];
} else {
// Browsecap.ini was set, use it:
$browser = get_browser[null, true];
}
Mike tại Mike-Griffiths Dot Co Dot Uk ¶
get_browser - cho biết trình duyệt của người dùng có khả năng gì — Tells what the user's browser is capable of
Sự mô tả
get_browser [? chuỗi $user_agent
= null
, bool $return_array
= false
]: Object | mảng | false[?string $user_agent
= null
, bool $return_array
=
false
]: object|array|false
Thông số
[browscap]
; //php.net/browscap
browscap = C:\PHP\extras\lite_php_browscap.ini
0Các tác nhân người dùng sẽ được phân tích. Theo mặc định, giá trị của tiêu đề tác nhân người dùng HTTP được sử dụng; Tuy nhiên, bạn có thể thay đổi điều này [tức là, tìm kiếm thông tin của trình duyệt khác] bằng cách truyền tham số này.
Bạn có thể bỏ qua tham số này với giá trị null
.null
value.
[browscap]
; //php.net/browscap
browscap = C:\PHP\extras\lite_php_browscap.ini
2Nếu được đặt thành
[browscap]
; //php.net/browscap
browscap = C:\PHP\extras\lite_php_browscap.ini
3, hàm này sẽ trả về một mảng thay vì một đối tượng.[browscap]
; //php.net/browscap
browscap = C:\PHP\extras\lite_php_browscap.ini
3, this function will return an array instead of an object. Trả về giá trị
Thông tin được trả về trong một đối tượng hoặc một mảng sẽ chứa các yếu tố dữ liệu khác nhau, ví dụ, ví dụ, các số phiên bản chính và nhỏ của trình duyệt và chuỗi ID; ________ 13/________ 9 Các giá trị cho các tính năng như khung, javascript và cookie; và kể từ đó trở đi.
3/[browscap]
; //php.net/browscap
browscap = C:\PHP\extras\lite_php_browscap.ini
false
values for features such as frames, JavaScript, and cookies; and so forth.
Giá trị
[browscap]
; //php.net/browscap
browscap = C:\PHP\extras\lite_php_browscap.ini
6 đơn giản có nghĩa là bản thân trình duyệt có khả năng chấp nhận cookie và không có nghĩa là người dùng đã kích hoạt trình duyệt chấp nhận cookie hay không. Cách duy nhất để kiểm tra nếu cookie được chấp nhận là đặt một cái với setCookie [], tải lại và kiểm tra giá trị.setcookie[], reload, and check for the value. Trả về false
Khi không có thông tin nào có thể được truy xuất, chẳng hạn như khi cài đặt cấu hình Browscap trong php.ini chưa được đặt.false
when
no information can be retrieved, such as when the browscap configuration setting in php.ini has not been set.
Ví dụ
Ví dụ #1 liệt kê tất cả thông tin về trình duyệt người dùng
[browscap]
; //php.net/browscap
browscap = C:\PHP\extras\lite_php_browscap.ini
8Ví dụ trên sẽ xuất ra một cái gì đó tương tự như:
Mozilla/5.0 [Windows; U; Windows NT 5.1; en-US; rv:1.7] Gecko/20040803 Firefox/0.9.3 Array [ [browser_name_regex] => ^mozilla/5\.0 [windows; .; windows nt 5\.1; .*rv:.*] gecko/.* firefox/0\.9.*$ [browser_name_pattern] => Mozilla/5.0 [Windows; ?; Windows NT 5.1; *rv:*] Gecko/* Firefox/0.9* [parent] => Firefox 0.9 [platform] => WinXP [browser] => Firefox [version] => 0.9 [majorver] => 0 [minorver] => 9 [cssversion] => 2 [frames] => 1 [iframes] => 1 [tables] => 1 [cookies] => 1 [backgroundsounds] => [vbscript] => [javascript] => 1 [javaapplets] => 1 [activexcontrols] => [cdf] => [aol] => [beta] => 1 [win16] => [crawler] => [stripper] => [wap] => [netclr] => ]
Ghi chú
Ghi chú::
Để hoạt động này, cài đặt cấu hình Browscap của bạn trong php.ini phải trỏ đến vị trí chính xác của tệp browscap.ini trên hệ thống của bạn.
browscap.ini không được gói với PHP, nhưng bạn có thể tìm thấy một tệp cập nhật »& nbsp; php_browscap.ini tại đây.
Mặc dù Browscap.ini chứa thông tin về nhiều trình duyệt, nhưng nó phụ thuộc vào các bản cập nhật của người dùng để giữ cho cơ sở dữ liệu hiện tại. Định dạng của tệp khá tự giải thích.
Tom tại Tgibbons Dot Com ¶ ¶
9 tháng trước
[browscap]
; //php.net/browscap
browscap = C:\PHP\extras\lite_php_browscap.ini
9$browser = get_browser[null, true];
echo '';
echo print_r[$browser,1];
echo '
';
0$browser = get_browser[null, true];
echo '';
echo print_r[$browser,1];
echo '
';
1Francesco r ¶ ¶
6 năm trước
$browser = get_browser[null, true];
echo '';
echo print_r[$browser,1];
echo '
';
2$browser = get_browser[null, true];
echo '';
echo print_r[$browser,1];
echo '
';
3$browser = get_browser[null, true];
echo '';
echo print_r[$browser,1];
echo '
';
4$browser = get_browser[null, true];
echo '';
echo print_r[$browser,1];
echo '
';
5Ruudrp tại Live Dot NL ¶ ¶
11 năm trước
$browser = get_browser[null, true];
echo '';
echo print_r[$browser,1];
echo '
';
6$browser = get_browser[null, true];
echo '';
echo print_r[$browser,1];
echo '
';
7$browser = get_browser[null, true];
echo '';
echo print_r[$browser,1];
echo '
';
8$browser = get_browser[null, true];
echo '';
echo print_r[$browser,1];
echo '
';
9Ẩn danh ¶ ¶
3 năm trước
Array
[
[browser_name_regex] => ~^mozilla/5\.0 \[.*windows nt 10\.0.*\] applewebkit ... ...
[browser_name_pattern] => Mozilla/5.0 [*Windows NT 10.0*] applewebkit... ...
[parent] => Chrome 89.0
[platform] => Win10
[comment] => Chrome 89.0
[browser] => Chrome
[version] => 89.0
[device_type] => Desktop
[ismobiledevice] =>
[istablet] =>
]
0Array
[
[browser_name_regex] => ~^mozilla/5\.0 \[.*windows nt 10\.0.*\] applewebkit ... ...
[browser_name_pattern] => Mozilla/5.0 [*Windows NT 10.0*] applewebkit... ...
[parent] => Chrome 89.0
[platform] => Win10
[comment] => Chrome 89.0
[browser] => Chrome
[version] => 89.0
[device_type] => Desktop
[ismobiledevice] =>
[istablet] =>
]
1Array
[
[browser_name_regex] => ~^mozilla/5\.0 \[.*windows nt 10\.0.*\] applewebkit ... ...
[browser_name_pattern] => Mozilla/5.0 [*Windows NT 10.0*] applewebkit... ...
[parent] => Chrome 89.0
[platform] => Win10
[comment] => Chrome 89.0
[browser] => Chrome
[version] => 89.0
[device_type] => Desktop
[ismobiledevice] =>
[istablet] =>
]
2Array
[
[browser_name_regex] => ~^mozilla/5\.0 \[.*windows nt 10\.0.*\] applewebkit ... ...
[browser_name_pattern] => Mozilla/5.0 [*Windows NT 10.0*] applewebkit... ...
[parent] => Chrome 89.0
[platform] => Win10
[comment] => Chrome 89.0
[browser] => Chrome
[version] => 89.0
[device_type] => Desktop
[ismobiledevice] =>
[istablet] =>
]
3Array
[
[browser_name_regex] => ~^mozilla/5\.0 \[.*windows nt 10\.0.*\] applewebkit ... ...
[browser_name_pattern] => Mozilla/5.0 [*Windows NT 10.0*] applewebkit... ...
[parent] => Chrome 89.0
[platform] => Win10
[comment] => Chrome 89.0
[browser] => Chrome
[version] => 89.0
[device_type] => Desktop
[ismobiledevice] =>
[istablet] =>
]
4Orchard kỹ thuật số ¶ ¶
5 năm trước
Array
[
[browser_name_regex] => ~^mozilla/5\.0 \[.*windows nt 10\.0.*\] applewebkit ... ...
[browser_name_pattern] => Mozilla/5.0 [*Windows NT 10.0*] applewebkit... ...
[parent] => Chrome 89.0
[platform] => Win10
[comment] => Chrome 89.0
[browser] => Chrome
[version] => 89.0
[device_type] => Desktop
[ismobiledevice] =>
[istablet] =>
]
5Jeff Williams ¶ ¶
4 năm trước
Array
[
[browser_name_regex] => ~^mozilla/5\.0 \[.*windows nt 10\.0.*\] applewebkit ... ...
[browser_name_pattern] => Mozilla/5.0 [*Windows NT 10.0*] applewebkit... ...
[parent] => Chrome 89.0
[platform] => Win10
[comment] => Chrome 89.0
[browser] => Chrome
[version] => 89.0
[device_type] => Desktop
[ismobiledevice] =>
[istablet] =>
]
6Array
[
[browser_name_regex] => ~^mozilla/5\.0 \[.*windows nt 10\.0.*\] applewebkit ... ...
[browser_name_pattern] => Mozilla/5.0 [*Windows NT 10.0*] applewebkit... ...
[parent] => Chrome 89.0
[platform] => Win10
[comment] => Chrome 89.0
[browser] => Chrome
[version] => 89.0
[device_type] => Desktop
[ismobiledevice] =>
[istablet] =>
]
7Array
[
[browser_name_regex] => ~^mozilla/5\.0 \[.*windows nt 10\.0.*\] applewebkit ... ...
[browser_name_pattern] => Mozilla/5.0 [*Windows NT 10.0*] applewebkit... ...
[parent] => Chrome 89.0
[platform] => Win10
[comment] => Chrome 89.0
[browser] => Chrome
[version] => 89.0
[device_type] => Desktop
[ismobiledevice] =>
[istablet] =>
]
8$browser = get_browser[null, true];
echo '';
echo print_r[$browser,1];
echo '
';
1Mike tại Mike-Griffiths Dot Co Dot Uk ¶ ¶
15 năm trước
if [!ini_get['browscap']] {
// Not set, use other custom func to detect browser:
$browser = get_browser_manually[];
} else {
// Browsecap.ini was set, use it:
$browser = get_browser[null, true];
}
0Tim tại Digicol Dot de ¶ ¶
8 năm trước
if [!ini_get['browscap']] {
// Not set, use other custom func to detect browser:
$browser = get_browser_manually[];
} else {
// Browsecap.ini was set, use it:
$browser = get_browser[null, true];
}
1if [!ini_get['browscap']] {
// Not set, use other custom func to detect browser:
$browser = get_browser_manually[];
} else {
// Browsecap.ini was set, use it:
$browser = get_browser[null, true];
}
2if [!ini_get['browscap']] {
// Not set, use other custom func to detect browser:
$browser = get_browser_manually[];
} else {
// Browsecap.ini was set, use it:
$browser = get_browser[null, true];
}
3$browser = get_browser[null, true];
echo '';
echo print_r[$browser,1];
echo '
';
1shashank ¶ ¶
7 năm trước
if [!ini_get['browscap']] {
// Not set, use other custom func to detect browser:
$browser = get_browser_manually[];
} else {
// Browsecap.ini was set, use it:
$browser = get_browser[null, true];
}
5if [!ini_get['browscap']] {
// Not set, use other custom func to detect browser:
$browser = get_browser_manually[];
} else {
// Browsecap.ini was set, use it:
$browser = get_browser[null, true];
}
6if [!ini_get['browscap']] {
// Not set, use other custom func to detect browser:
$browser = get_browser_manually[];
} else {
// Browsecap.ini was set, use it:
$browser = get_browser[null, true];
}
7$browser = get_browser[null, true];
echo '';
echo print_r[$browser,1];
echo '
';
9Tối đa tại phpexpert dot de ¶ ¶
18 năm trước
if [!ini_get['browscap']] {
// Not set, use other custom func to detect browser:
$browser = get_browser_manually[];
} else {
// Browsecap.ini was set, use it:
$browser = get_browser[null, true];
}
9Mozilla/5.0 [Windows; U; Windows NT 5.1; en-US; rv:1.7] Gecko/20040803 Firefox/0.9.3 Array [ [browser_name_regex] => ^mozilla/5\.0 [windows; .; windows nt 5\.1; .*rv:.*] gecko/.* firefox/0\.9.*$ [browser_name_pattern] => Mozilla/5.0 [Windows; ?; Windows NT 5.1; *rv:*] Gecko/* Firefox/0.9* [parent] => Firefox 0.9 [platform] => WinXP [browser] => Firefox [version] => 0.9 [majorver] => 0 [minorver] => 9 [cssversion] => 2 [frames] => 1 [iframes] => 1 [tables] => 1 [cookies] => 1 [backgroundsounds] => [vbscript] => [javascript] => 1 [javaapplets] => 1 [activexcontrols] => [cdf] => [aol] => [beta] => 1 [win16] => [crawler] => [stripper] => [wap] => [netclr] => ]0
$browser = get_browser[null, true];
echo '';
echo print_r[$browser,1];
echo '
';
1Jeremie Dot Legrand tại Komori-Chambon Dot Fr ¶ ¶
6 năm trước
Mozilla/5.0 [Windows; U; Windows NT 5.1; en-US; rv:1.7] Gecko/20040803 Firefox/0.9.3 Array [ [browser_name_regex] => ^mozilla/5\.0 [windows; .; windows nt 5\.1; .*rv:.*] gecko/.* firefox/0\.9.*$ [browser_name_pattern] => Mozilla/5.0 [Windows; ?; Windows NT 5.1; *rv:*] Gecko/* Firefox/0.9* [parent] => Firefox 0.9 [platform] => WinXP [browser] => Firefox [version] => 0.9 [majorver] => 0 [minorver] => 9 [cssversion] => 2 [frames] => 1 [iframes] => 1 [tables] => 1 [cookies] => 1 [backgroundsounds] => [vbscript] => [javascript] => 1 [javaapplets] => 1 [activexcontrols] => [cdf] => [aol] => [beta] => 1 [win16] => [crawler] => [stripper] => [wap] => [netclr] => ]2
Mozilla/5.0 [Windows; U; Windows NT 5.1; en-US; rv:1.7] Gecko/20040803 Firefox/0.9.3 Array [ [browser_name_regex] => ^mozilla/5\.0 [windows; .; windows nt 5\.1; .*rv:.*] gecko/.* firefox/0\.9.*$ [browser_name_pattern] => Mozilla/5.0 [Windows; ?; Windows NT 5.1; *rv:*] Gecko/* Firefox/0.9* [parent] => Firefox 0.9 [platform] => WinXP [browser] => Firefox [version] => 0.9 [majorver] => 0 [minorver] => 9 [cssversion] => 2 [frames] => 1 [iframes] => 1 [tables] => 1 [cookies] => 1 [backgroundsounds] => [vbscript] => [javascript] => 1 [javaapplets] => 1 [activexcontrols] => [cdf] => [aol] => [beta] => 1 [win16] => [crawler] => [stripper] => [wap] => [netclr] => ]3
$browser = get_browser[null, true];
echo '';
echo print_r[$browser,1];
echo '
';
1Ruudrp tại Live Dot NL ¶ ¶
6 năm trước
Mozilla/5.0 [Windows; U; Windows NT 5.1; en-US; rv:1.7] Gecko/20040803 Firefox/0.9.3 Array [ [browser_name_regex] => ^mozilla/5\.0 [windows; .; windows nt 5\.1; .*rv:.*] gecko/.* firefox/0\.9.*$ [browser_name_pattern] => Mozilla/5.0 [Windows; ?; Windows NT 5.1; *rv:*] Gecko/* Firefox/0.9* [parent] => Firefox 0.9 [platform] => WinXP [browser] => Firefox [version] => 0.9 [majorver] => 0 [minorver] => 9 [cssversion] => 2 [frames] => 1 [iframes] => 1 [tables] => 1 [cookies] => 1 [backgroundsounds] => [vbscript] => [javascript] => 1 [javaapplets] => 1 [activexcontrols] => [cdf] => [aol] => [beta] => 1 [win16] => [crawler] => [stripper] => [wap] => [netclr] => ]5
Mozilla/5.0 [Windows; U; Windows NT 5.1; en-US; rv:1.7] Gecko/20040803 Firefox/0.9.3 Array [ [browser_name_regex] => ^mozilla/5\.0 [windows; .; windows nt 5\.1; .*rv:.*] gecko/.* firefox/0\.9.*$ [browser_name_pattern] => Mozilla/5.0 [Windows; ?; Windows NT 5.1; *rv:*] Gecko/* Firefox/0.9* [parent] => Firefox 0.9 [platform] => WinXP [browser] => Firefox [version] => 0.9 [majorver] => 0 [minorver] => 9 [cssversion] => 2 [frames] => 1 [iframes] => 1 [tables] => 1 [cookies] => 1 [backgroundsounds] => [vbscript] => [javascript] => 1 [javaapplets] => 1 [activexcontrols] => [cdf] => [aol] => [beta] => 1 [win16] => [crawler] => [stripper] => [wap] => [netclr] => ]6
Mozilla/5.0 [Windows; U; Windows NT 5.1; en-US; rv:1.7] Gecko/20040803 Firefox/0.9.3 Array [ [browser_name_regex] => ^mozilla/5\.0 [windows; .; windows nt 5\.1; .*rv:.*] gecko/.* firefox/0\.9.*$ [browser_name_pattern] => Mozilla/5.0 [Windows; ?; Windows NT 5.1; *rv:*] Gecko/* Firefox/0.9* [parent] => Firefox 0.9 [platform] => WinXP [browser] => Firefox [version] => 0.9 [majorver] => 0 [minorver] => 9 [cssversion] => 2 [frames] => 1 [iframes] => 1 [tables] => 1 [cookies] => 1 [backgroundsounds] => [vbscript] => [javascript] => 1 [javaapplets] => 1 [activexcontrols] => [cdf] => [aol] => [beta] => 1 [win16] => [crawler] => [stripper] => [wap] => [netclr] => ]7
Mozilla/5.0 [Windows; U; Windows NT 5.1; en-US; rv:1.7] Gecko/20040803 Firefox/0.9.3 Array [ [browser_name_regex] => ^mozilla/5\.0 [windows; .; windows nt 5\.1; .*rv:.*] gecko/.* firefox/0\.9.*$ [browser_name_pattern] => Mozilla/5.0 [Windows; ?; Windows NT 5.1; *rv:*] Gecko/* Firefox/0.9* [parent] => Firefox 0.9 [platform] => WinXP [browser] => Firefox [version] => 0.9 [majorver] => 0 [minorver] => 9 [cssversion] => 2 [frames] => 1 [iframes] => 1 [tables] => 1 [cookies] => 1 [backgroundsounds] => [vbscript] => [javascript] => 1 [javaapplets] => 1 [activexcontrols] => [cdf] => [aol] => [beta] => 1 [win16] => [crawler] => [stripper] => [wap] => [netclr] => ]8
Mozilla/5.0 [Windows; U; Windows NT 5.1; en-US; rv:1.7] Gecko/20040803 Firefox/0.9.3 Array [ [browser_name_regex] => ^mozilla/5\.0 [windows; .; windows nt 5\.1; .*rv:.*] gecko/.* firefox/0\.9.*$ [browser_name_pattern] => Mozilla/5.0 [Windows; ?; Windows NT 5.1; *rv:*] Gecko/* Firefox/0.9* [parent] => Firefox 0.9 [platform] => WinXP [browser] => Firefox [version] => 0.9 [majorver] => 0 [minorver] => 9 [cssversion] => 2 [frames] => 1 [iframes] => 1 [tables] => 1 [cookies] => 1 [backgroundsounds] => [vbscript] => [javascript] => 1 [javaapplets] => 1 [activexcontrols] => [cdf] => [aol] => [beta] => 1 [win16] => [crawler] => [stripper] => [wap] => [netclr] => ]9
$user_agent
0
$user_agent
1
$user_agent
2
$user_agent
3
$user_agent
4
$user_agent
5
$user_agent
6
$user_agent
7
$user_agent
8
$user_agent
4
null
0
$browser = get_browser[null, true];
echo '';
echo print_r[$browser,1];
echo '
';
1Ruudrp tại Live Dot NL ¶ ¶
6 năm trước
null
2
null
3
null
4
$browser = get_browser[null, true];
echo '';
echo print_r[$browser,1];
echo '
';
1