<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>CodeIgniter User Guide : User Agent Class</title><style type='text/css' media='all'>@import url('../userguide.css');</style><link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /><script type="text/javascript" src="../nav/nav.js"></script><script type="text/javascript" src="../nav/prototype.lite.js"></script><script type="text/javascript" src="../nav/moo.fx.js"></script><script type="text/javascript" src="../nav/user_guide_menu.js"></script><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta http-equiv='expires' content='-1' /><meta http-equiv= 'pragma' content='no-cache' /><meta name='robots' content='all' /><meta name='author' content='Rick Ellis' /><meta name='description' content='CodeIgniter User Guide' /></head><body><!-- START NAVIGATION --><div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div><div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div><div id="masthead"><table cellpadding="0" cellspacing="0" border="0" style="width:100%"><tr><td><h1>CodeIgniter User Guide Version 1.5.4</h1></td><td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td></tr></table></div><!-- END NAVIGATION --><!-- START BREADCRUMB --><table cellpadding="0" cellspacing="0" border="0" style="width:100%"><tr><td id="breadcrumb"><a href="http://www.codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;User Agent Class</td><td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td></tr></table><!-- END BREADCRUMB --><br clear="all" /><!-- START CONTENT --><div id="content"><h1>User Agent Class</h1><p>The User Agent Class provides functions that help identify information about the browser, mobile device, or robot visiting your site.In addition you can get referrer information as well as language and supported character-set information.</p><h2>Initializing the Class</h2><p>Like most other classes in CodeIgniter, the User Agent class is initialized in your controller using the <dfn>$this->load->library</dfn> function:</p><code>$this->load->library('user_agent');</code><p>Once loaded, the object will be available using: <dfn>$this->agent</dfn></p><h2>User Agent Definitions</h2><p>The user agent name definitions are located in a config file located at: <dfn>application/config/user_agents.php</dfn>.  You may add items to thevarious user agent arrays if needed.</p><h2>Example</h2><p>When the User Agent class is initialized it will attempt to determine whether the user agent browsing your site isa web browser, a mobile device, or a robot.  It will also gather the platform information if it is available.</p><code>$this->load->library('user_agent');<br /><br />if ($this->agent->is_browser())<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;$agent  = $this->agent->browser().' '.$this->agent->version();<br />}<br />elseif ($this->agent->is_robot())<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;$agent = $this->agent->robot();<br />}<br />elseif ($this->agent->is_mobile())<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;$agent = $this->agent->mobile();<br />}<br />else<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;$agent = 'Unidentified User Agent';<br />}<br /><br />echo $agent;<br /><br />echo $this->agent->platform(); // Platform info (Windows, Linux, Mac, etc.)</code><h1>Function Reference</h1><h2>$this->agent->is_browser()</h2><p>Returns TRUE/FALSE (boolean) if the user agent is a known web browser.</p><h2>$this->agent->is_mobile()</h2><p>Returns TRUE/FALSE (boolean) if the user agent is a known mobile device.</p><h2>$this->agent->is_robot()</h2><p>Returns TRUE/FALSE (boolean) if the user agent is a known robot.</p><p class="important"><strong>Note:</strong>&nbsp; The user agent library only contains the most common robotdefinitions.  It is not a complete list of bots. There are hundreds of them so searching for each one would not bevery efficient. If you find that some bots that commonly visit your site are missing from the list you can add them to your<dfn>application/config/user_agents.php</dfn> file.</p><h2>$this->agent->is_referral()</h2><p>Returns TRUE/FALSE (boolean) if the user agent was referred from another site.</p><h2>$this->agent->browser()</h2><p>Returns a string containing the name of the web browser viewing your site.</p><h2>$this->agent->version()</h2><p>Returns a string containing the version number of the web browser viewing your site.</p><h2>$this->agent->mobile()</h2><p>Returns a string containing the name of the mobile device viewing your site.</p><h2>$this->agent->robot()</h2><p>Returns a string containing the name of the robot viewing your site.</p><h2>$this->agent->platform()</h2><p>Returns a string containing the platform viewing your site (Linux, Windows, OS X, etc.).</p><h2>$this->agent->referrer()</h2><p>The referrer, if the user agent was referred from another site. Typically you'll test for this as follows:</p><code> if ($this->agent->is_referral())<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo $this->agent->referrer();<br />}</code><h2>$this->agent->agent_string()</h2><p>Returns a string containing the full user agent string.  Typically it will be something like this:</p><code>Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2</code><h2>$this->agent->accept_lang()</h2><p>Lets you determine if the user agent accepts a particular language. Example:</p><code>if ($this->agent->accept_lang('en'))<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo 'You accept English!';<br />}</code><p class="important"><strong>Note:</strong> This function is not typically very reliablesince some browsers do not provide language info, and even among those that do, it is not always accurate. </p><h2>$this->agent->accept_charset()</h2><p>Lets you determine if the user agent accepts a particular character set. Example:</p><code>if ($this->agent->accept_charset('utf-8'))<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo 'You browser supports UTF-8!';<br />}</code><p class="important"><strong>Note:</strong> This function is not typically very reliablesince some browsers do not provide character-set info, and even among those that do, it is not always accurate. </p></div><!-- END CONTENT --><div id="footer"><p>Previous Topic:&nbsp;&nbsp;<a href="uri.html">URI Class</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;Next Topic:&nbsp;&nbsp;<a href="validation.html">Validation Class</a></p><p><a href="http://www.codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2007 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">Ellislab, Inc.</a></p></div></body></html>