-
Notifications
You must be signed in to change notification settings - Fork 105
/
Copy pathget-browser.xml
158 lines (149 loc) · 4.84 KB
/
get-browser.xml
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 3c699fad2dd94ee926ba04bdaf79e6f14b5b728b Maintainer: daijie Status: ready -->
<!-- CREDITS: mowangjuanzi -->
<refentry xml:id="function.get-browser" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>get_browser</refname>
<refpurpose>获取浏览器具有的功能</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>object</type><type>array</type><type>false</type></type><methodname>get_browser</methodname>
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>user_agent</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>return_array</parameter><initializer>&false;</initializer></methodparam>
</methodsynopsis>
<para>
通过查找 <filename>browscap.ini</filename> 文件中的浏览器信息,尝试检测用户的浏览器所具有的功能。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>user_agent</parameter></term>
<listitem>
<para>
要分析的用户代理。默认使用HTTP头中User-Agent的值,不过,你可以通过传递该参数改变User-Agent。(比如查找另一个浏览器的信息)
</para>
<para>
你可以传递一个 &null; 来忽略该参数。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>return_array</parameter></term>
<listitem>
<para>
如果设置为 &true;,该函数会返回一个 <type>array</type>,而不是 <type>object</type>。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
信息会以包含一系列数据的数组或者对象返回。例如:浏览器的主版本号、次版本号和ID字符串;框架、JavaScript、cookies等功能是否支持 &true;/&false; 的值。
</para>
<para>
<literal>cookies</literal> 的值仅意味着浏览器是否具有接收cookies的功能,不代表用户是否已允许启用cookies。
测试的唯一办法,只有通过 <function>setcookie</function> 设置一个cookie,刷新页面并检测该cookie的值。
</para>
<para>
当无法检索到信息时返回 &false;,比如未设置 &php.ini; 中的
<link linkend="ini.browscap">browscap</link> 配置项。
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>列出所有用户浏览器的信息</title>
<programlisting role="php">
<![CDATA[
<?php
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";
$browser = get_browser(null, true);
print_r($browser);
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
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] =>
)
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
为了能让该函数运作,在 &php.ini; 中配置的 <link
linkend="ini.browscap">browscap</link> 必须指向 <filename>browscap.ini</filename> 文件的正确位置。
</para>
<para>
<filename>browscap.ini</filename> 并未内置在PHP中,不过你可以在这里找到最新的 <link
xlink:href="&url.browscap.download;">php_browscap.ini</link>。
</para>
<para>
<filename>browscap.ini</filename> 包含的诸多浏览器信息依赖于用户更新该数据库。该文件的格式不言自明。
</para>
</note>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->