php-doc-en/reference/misc/functions/get-browser.xml
Damien Seguy be0a936d2e cosmetics and examples
git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@158098 c90b9560-bf6c-de11-be94-00142212c4b1
2004-05-06 15:25:58 +00:00

135 lines
4.6 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.10 $ -->
<!-- splitted from ./en/functions/misc.xml, last change in rev 1.2 -->
<refentry id="function.get-browser">
<refnamediv>
<refname>get_browser</refname>
<refpurpose>
Tells what the user's browser is capable of
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<methodsynopsis>
<type>object</type><methodname>get_browser</methodname>
<methodparam choice="opt"><type>string</type><parameter>user_agent</parameter></methodparam>
</methodsynopsis>
<simpara>
<function>get_browser</function> attempts to determine the
capabilities of the user's browser. This is done by looking up
the browser's information in the <filename>browscap.ini</filename>
file. By default, the value of <varname>$_SERVER["HTTP_USER_AGENT"]</varname> is
used; however, you can alter this (i.e., look up another browser's
info) by passing the optional
<parameter>user_agent</parameter> parameter to
<function>get_browser</function>.
</simpara>
<simpara>
The information is returned in an <type>object</type>, which will contain
various data elements representing, for instance, the browser's
major and minor version numbers and ID string; &true;/&false; values
for features such as frames, JavaScript, and cookies; and so
forth.
</simpara>
<simpara>
While <filename>browscap.ini</filename> contains information on
many browsers, it relies on user updates to keep the database
current. The format of the file is fairly self-explanatory.
</simpara>
<para>
The following example shows how one might list all available
information retrieved about the user's browser.
<example>
<title><function>get_browser</function> example</title>
<programlisting role="php">
<![CDATA[
<?php
echo $_SERVER['HTTP_USER_AGENT'] . "<hr />\n";
$browser = get_browser();
foreach ($browser as $name => $value) {
echo "<b>$name</b> $value <br />\n";
}
?>
]]>
</programlisting>
<simpara>
The output of the above script would look something like this:
</simpara>
<screen role="html">
<![CDATA[
Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)<hr />
<b>browser_name_pattern:</b> Mozilla/4\.5.*<br />
<b>parent:</b> Netscape 4.0<br />
<b>platform:</b> Linux<br />
<b>majorver:</b> 4<br />
<b>minorver:</b> 5<br />
<b>browser:</b> Netscape<br />
<b>version:</b> 4<br />
<b>frames:</b> 1<br />
<b>tables:</b> 1<br />
<b>cookies:</b> 1<br />
<b>backgroundsounds:</b> <br />
<b>vbscript:</b> <br />
<b>javascript:</b> 1<br />
<b>javaapplets:</b> 1<br />
<b>activexcontrols:</b> <br />
<b>beta:</b> <br />
<b>crawler:</b> <br />
<b>authenticodeupdate:</b> <br />
<b>msn:</b> <br />
]]>
</screen>
</example>
</para>
<simpara>
In order for this to work, your <link
linkend="ini.browscap">browscap</link> configuration setting in
&php.ini; must point to the correct location of the
<filename>browscap.ini</filename> file on your system.
<filename>browscap.ini</filename> is not bundled with PHP but you
may find an up-to-date <ulink url="&url.browscap.download;">
browscap.ini file here</ulink>. By default, the
<link linkend="ini.browscap">browscap</link> directive is commented out.
</simpara>
<simpara>
The <literal>cookies</literal> value simply means that the browser
itself is capable of accepting cookies and does not mean the user has
enabled the browser to accept cookies or not. The only way to test if
cookies are accepted is to set one with <function>setcookie</function>,
reload, and check for the value.
</simpara>
<note>
<simpara>
On versions older than PHP 4.0.6, you will have to pass the
user agent in via the optional <parameter>user_agent</parameter>
parameter if the PHP directive <link linkend="ini.register-globals">
register_globals</link> is <literal>off</literal>. In this case,
you will pass in <varname>$HTTP_SERVER_VARS['HTTP_USER_AGENT']</varname>.
</simpara>
</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:"../../../../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
-->