Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.53 KB | None | 0 0
  1.   /**
  2.    * Removes garbage from user agent string
  3.    * @param String User agent
  4.    * @return String User agent
  5.    */
  6.   public static function cleanUserAgent($ua) {
  7.     $ua = self::removeUPLinkFromUA($ua);
  8.     // Remove serial number
  9.     $ua = preg_replace('/\/SN\d{15}/', '/SNXXXXXXXXXXXXXXX', $ua);
  10.     // Remove locale identifier for xx-xx
  11.     $ua = preg_replace('/([ ;])[a-zA-Z]{2}-[a-zA-Z]{2}([ ;\)])/', '$1xx-xx$2', $ua);
  12.     // Remove locale identifier for xx
  13.     if (preg_match('/([ ;])[a-zA-Z]{2}([ ;\)])/', $ua, $matches)) {
  14.       $support_languages = self::parseLanguages();
  15.       foreach ($matches as $language) {
  16.         if (in_array(strtolower(substr(trim($language), 0, 2)), $support_languages))
  17.           $ua = preg_replace('/([ ;])[a-zA-Z]{2}([ ;\)])/', '$1xx-xx$2', $ua);
  18.       }
  19.     }
  20.     $ua = self::normalizeBlackberry($ua);
  21.     return $ua;
  22.   }
  23.  
  24.   /**
  25.    * Get the langages from header
  26.    * @return array
  27.    */
  28.   public static function parseLanguages() {
  29.     $lang = array();
  30.     if(!array_key_exists('HTTP_ACCEPT_LANGUAGE',$_SERVER)) return $lang;
  31.     $http_accept_lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
  32.     // Split possible languages into array
  33.     $x = explode(",", $http_accept_lang);
  34.     foreach ($x as $val) {
  35.       //check for q-value and create associative array. No q-value means 1 by rule
  36.       if (preg_match("/(.*);q=([0-1]{0,1}\.\d{0,4})/i", $val, $matches)) {
  37.         $lang[] = strtolower($matches[1]);
  38.       } else {
  39.         $lang[] = strtolower($val);
  40.       }
  41.     }
  42.     return $lang;
  43.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement