example

  1. <?php
  2.  
  3. /**
  4.  * Example of usage.
  5.  * 
  6.  * UserAgentParser allows to parse HTTP_USER_AGENT environment value and get access to results by different ways.
  7.  * 
  8.  * PHP versions 5
  9.  * 
  10.  * Copyright (c) 2009 - 2012, Diptan Ă†there Vladimir.
  11.  * @package files
  12.  * @filesource
  13.  * 
  14.  */
  15.  
  16. /**
  17.  * Output prformated data
  18.  * @param mixed $data data to output
  19.  * @return void 
  20.  */
  21. function testParser($data{
  22.     static $testN 0;
  23.     echo '<pre>Test #'++$testN': 'print_r($datatrue)'</pre>';
  24. }
  25.  
  26. error_reporting(E_ALL E_NOTICE);
  27. include './classes/parsers/useragentparser.php';
  28.  
  29.  
  30. //$_SERVER['HTTP_USER_AGENT'] = Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7;
  31.  
  32.  
  33. $parser new UserAgentParser('Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7');
  34.  
  35. $result $parser->parse()->toString();
  36.  
  37. /* ==============================Output
  38. Test #1: Array
  39. (
  40.     [0] => chrome_16.0.912.77
  41.     [browser] => chrome_16.0.912.77
  42.     [1] => 16.0.912.77
  43.     [version] => 16.0.912.77
  44.     [2] => windows_nt_5.1
  45.     [platform] => windows_nt_5.1
  46.     [3] => WEBKIT
  47.     [type] => WEBKIT
  48. )
  49.   =============================== */
  50.  
  51. /*
  52.  * Usage of UserAgentParser::is
  53.  */
  54. echo '<pre>UserAgentParser::is()';
  55.         $parser->is('chrome')//true
  56.         $parser->is('chrome'16.0)//true
  57.         $parser->is('chrome'17)//false        
  58.         $parser->is('chrome''16.0.9')//true
  59.         $parser->is('chrome''16.0.9'true//false
  60. );
  61. echo '</pre>';
  62.  
  63. /*
  64.  * Usage of UserAgentParser::getType
  65.  */
  66. echo '<pre>UserAgentParser::getType()';
  67.         $parser->getType()//WEBKIT
  68.         $parser->getType(UserAgentParser::WEBKIT)//true
  69.         $parser->getType(UserAgentParser::ALL UserAgentParser::WEBKIT)//false
  70.         $parser->getType(UserAgentParser::PRESTO)//false
  71.         $parser->getType(UserAgentParser::PROPRIETARY)//false
  72.         $parser->getType(UserAgentParser::UNDEFINED UserAgentParser::WEBKIT)//true
  73.         $parser->getType(UserAgentParser::UNDEFINED)//true
  74.         $parser->getType(UserAgentParser::TRIDENT UserAgentParser::WEBKIT//true
  75. );
  76. echo '</pre>';
  77.  
  78.  
  79. $parser->setUserAgent('Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.8.131 Version/11.10');
  80. $parser->parse();
  81. $result = (string) $parser;
  82.  
  83. /* ==============================Output
  84. Test #2: Array
  85. (
  86.     [0] => opera_11.10
  87.     [browser] => opera_11.10
  88.     [1] => 11.10
  89.     [version] => 11.10
  90.     [2] => windows_nt_5.1
  91.     [platform] => windows_nt_5.1
  92.     [3] => PRESTO
  93.     [type] => PRESTO
  94. )
  95.   =============================== */
  96.  
  97.  
  98. testParser($parser->parse('Opera/9.60 (J2ME/MIDP; Opera Mini/4.2.14320/554; U; cs) Presto/2.2.0')->getParsedData());
  99. /* ==============================Output
  100. Test #3: Array
  101. (
  102.     [0] => opera_mini_4.2.14320
  103.     [browser] => opera_mini_4.2.14320
  104.     [1] => 4.2.14320
  105.     [version] => 4.2.14320
  106.     [2] => j2me_midp
  107.     [platform] => j2me_midp
  108.     [3] => PRESTO
  109.     [type] => PRESTO
  110. )
  111.   =============================== */
  112.  
  113.  
  114. testParser($parser->parse('Yahoo!-MMCrawler/3.x (mms dash mmcrawler dash support at yahoo dash inc dot com)')->getBrowser());
  115. /* ==============================Output
  116.   Test #4: yahoo_mmcrawler_3
  117.   =============================== */
  118.  
  119.  
  120. $parser->setUserAgent('Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.4 (Change: )');
  121. $parser->parse();
  122. $result array(
  123.     $parser->getBrowser(),
  124.     $parser->getPlatform(),
  125.     $parser->getType()
  126. );
  127. testParser($result);
  128. /* ==============================Output
  129. Test #5: Array
  130. (
  131.     [0] => arora_0.4
  132.     [1] => windows_nt_5.1
  133.     [2] => WEBKIT
  134. )
  135.   =============================== */
  136.  
  137.  
  138. testParser($parser->parse('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; KKMAN3.2; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C)'true));
  139. /* ==============================Output
  140. Test #6: Array
  141. (
  142.     [0] => kkman3.2
  143.     [browser] => kkman3.2
  144.     [1] => 3.2
  145.     [version] => 3.2
  146.     [2] => windows_nt_6.1
  147.     [platform] => windows_nt_6.1
  148.     [3] => TRIDENT
  149.     [type] => TRIDENT
  150. )
  151.   =============================== */
  152.  
  153.  
  154. $parser->parse('Mozilla/5.0 (Linux; U; Android 2.1-update1; en-au; HTC_Desire_A8183 V1.16.841.1 Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17');
  155. $result $parser->getBrowser('|' $parser->getPlatform();
  156. testParser($result);
  157. /* ==============================Output
  158.   Test #7: mobile_safari_4.0|android_2.1
  159.   =============================== */
  160.  
  161.  
  162. $result $parser->setUserAgent('The Bat! 4.0.14')->parse()->getBrowser();
  163. testParser($result);
  164. /* ==============================Output
  165.   Test #8: the_bat_4.0.14
  166.   =============================== */
  167.  
  168.  
  169. $result $parser->parse('itunes/9.0.2 (Macintosh; Intel Mac OS X 10.4.11) AppleWebKit/531.21.8')->getParsedData();
  170. testParser($result);
  171. /* ==============================Output
  172. Test #9: Array
  173. (
  174.     [0] => itunes_9.0.2
  175.     [browser] => itunes_9.0.2
  176.     [1] => 9.0.2
  177.     [version] => 9.0.2
  178.     [2] => intel_mac_os_x_10.4.11
  179.     [platform] => intel_mac_os_x_10.4.11
  180.     [3] => PROPRIETARY
  181.     [type] => PROPRIETARY
  182. )
  183.   =============================== */
  184.  
  185.  
  186. testParser($parser->parse('Mozilla/5.0 (X11; U; Linux i686; en-US; SkipStone 0.8.3) Gecko/20020615 Debian/1.0.0-3')->getParsedData());
  187. /* ==============================Output
  188. Test #10: Array
  189. (
  190.     [0] => skipstone_0.8.3
  191.     [browser] => skipstone_0.8.3
  192.     [1] => 0.8.3
  193.     [version] => 0.8.3
  194.     [2] => linux_i686_debian_1.0.0
  195.     [platform] => linux_i686_debian_1.0.0
  196.     [3] => TRIDENT
  197.     [type] => TRIDENT
  198. )
  199.   =============================== */
  200.  
  201.  
  202. testParser($parser->parse('Mozilla/4.0 (compatible; MSIE 6.0; AOL 6.0; Windows NT 5.1)')->getParsedData());
  203. /* ==============================Output
  204. Test #11: Array
  205. (
  206.     [0] => aol_6.0
  207.     [browser] => aol_6.0
  208.     [1] => 6.0
  209.     [version] => 6.0
  210.     [2] => windows_nt_5.1
  211.     [platform] => windows_nt_5.1
  212.     [3] => TRIDENT
  213.     [type] => TRIDENT
  214. )
  215.   =============================== */
  216.  
  217.  
  218. testParser($parser->parse('Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2a2pre) Gecko/20090901 Ubuntu/9.10 (karmic) Namoroka/3.6a2pre')->getParsedData());
  219. /* ==============================Output
  220. Test #12: Array
  221. (
  222.     [0] => namoroka_3.6
  223.     [browser] => namoroka_3.6
  224.     [1] => 3.6
  225.     [version] => 3.6
  226.     [2] => linux_x86_64_ubuntu_9.10
  227.     [platform] => linux_x86_64_ubuntu_9.10
  228.     [3] => GECKO
  229.     [type] => GECKO
  230. )
  231.   =============================== */
  232.  
  233.  
  234. testParser($parser->parse('Mozilla/5.0 (X11; U; Linux amd64; rv:5.0) Gecko/20100101 Firefox/5.0 (Debian)')->getParsedData());
  235. /* ==============================Output
  236. Test #13: Array
  237. (
  238.     [0] => firefox_5.0
  239.     [browser] => firefox_5.0
  240.     [1] => 5.0
  241.     [version] => 5.0
  242.     [2] => linux_amd64_debian
  243.     [platform] => linux_amd64_debian
  244.     [3] => GECKO
  245.     [type] => GECKO
  246. )
  247.   =============================== */

Documentation generated on Wed, 08 Feb 2012 16:40:06 +0300 by phpDocumentor 1.4.3