- Timestamp:
- 09/18/2017 07:53:25 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/api.wordpress.org/public_html/core/browse-happy/1.0/parse.php
r717 r5934 16 16 $data = array(); 17 17 18 if ( preg_match('/^.+?(?P<platform>Android|iPhone|iPad|Windows|Linux|Macintosh|Windows Phone OS|RIM Tablet OS|PlayBook)(?: NT)*(?: [ix]?[0-9._]+)*(;|\))/im', $user_agent, $regs ) ) 19 $data['platform'] = $regs['platform']; 18 if ( preg_match( 19 '/^.+?(?P<platform>Android|iPhone|iPad|Windows|Linux|Macintosh|Windows Phone OS|RIM Tablet OS|PlayBook)(?: NT)*(?: [ix]?[0-9._]+)*(;|\))/im', 20 $user_agent, 21 $regs 22 ) ) { 23 $data['platform'] = $regs['platform']; 24 } 20 25 21 preg_match_all( '%(?P<name>Trident|Camino|Kindle|Firefox|(?:Mobile )?Safari|MSIE|RockMelt|AppleWebKit|Chrome|IEMobile|Opera|Version)(?:[/ ])(?P<version>[0-9.]+)%im', $user_agent, $result, PREG_PATTERN_ORDER ); 22 23 // If Version/x.x.x was specified in UA string store it and ignore it 24 if ( $key = array_search( 'Version', $result['name'] ) ) { 25 $version = $result['version'][ $key ]; 26 unset( $result['name'][ $key ] ); 27 unset( $result['version'][ $key ] ); 28 } 26 preg_match_all( 27 '%(?P<name>Trident|Camino|Kindle|Firefox|(?:Mobile )?Safari|MSIE|RockMelt|AppleWebKit|Chrome|IEMobile|Opera|Version)(?:[/ ])(?P<version>[0-9.]+)%im', 28 $user_agent, 29 $result, 30 PREG_PATTERN_ORDER 31 ); 29 32 30 if ( 'AppleWebKit' == $result['name'][0] ) { 31 if ( $key = array_search( 'Mobile Safari', $result['name'] ) ) { 32 $data['name'] = 'Mobile Safari'; 33 // } elseif ( ( 'Android' == $data['platform'] && !($key = 0) ) || $key = array_search( 'Chrome', $result['name'] ) ) { 34 } elseif ( $key = array_search( 'RockMelt', $result['name'] ) ) { 35 $data['name'] = 'RockMelt'; 36 } elseif ( $key = array_search( 'Chrome', $result['name'] ) ) { 37 $data['name'] = 'Chrome'; 38 } elseif ( ! empty( $data['platform'] ) && 'PlayBook' == $data['platform'] ) { 39 $data['name'] = 'PlayBook'; 40 } elseif ( $key = array_search( 'Kindle', $result['name'] ) ) { 41 $data['name'] = 'Kindle'; 42 } elseif ( $key = array_search( 'Safari', $result['name'] ) ) { 43 $data['name'] = 'Safari'; 44 } else { 45 $key = 0; 46 $data['name'] = 'webkit'; 47 } 48 $data['version'] = $result['version'][ $key ]; 49 } elseif ( $key = array_search( 'Opera', $result['name'] ) ) { 50 $data['name'] = $result['name'][$key]; 51 $data['version'] = $result['version'][ $key ]; 52 } elseif ( 'MSIE' == $result['name'][0] ) { 53 if ( $key = array_search( 'IEMobile', $result['name'] ) ) { 54 $data['name'] = 'Internet Explorer Mobile'; 55 } else { 56 $data['name'] = 'Internet Explorer'; 57 $key = 0; 58 } 59 $data['version'] = $result['version'][ $key ]; 60 } elseif ( 'Trident' == $result['name'][0] ) { 61 // IE 11 and beyond have switched to Trident 62 // http://msdn.microsoft.com/en-us/library/ie/hh869301%28v=vs.85%29.aspx 63 $data['name'] = 'Internet Explorer'; 64 if( '7.0' == $result['version'][0] ) { 33 // If Version/x.x.x was specified in UA string store it and ignore it 34 if ( $key = array_search( 'Version', $result['name'] ) ) { 35 $version = $result['version'][ $key ]; 36 unset( $result['name'][ $key ] ); 37 unset( $result['version'][ $key ] ); 38 } 39 40 if ( 'AppleWebKit' == $result['name'][0] ) { 41 if ( $key = array_search( 'Mobile Safari', $result['name'] ) ) { 42 $data['name'] = 'Mobile Safari'; 43 // } elseif ( ( 'Android' == $data['platform'] && !($key = 0) ) || $key = array_search( 'Chrome', $result['name'] ) ) { 44 } elseif ( $key = array_search( 'RockMelt', $result['name'] ) ) { 45 $data['name'] = 'RockMelt'; 46 } elseif ( $key = array_search( 'Chrome', $result['name'] ) ) { 47 $data['name'] = 'Chrome'; 48 } elseif ( ! empty( $data['platform'] ) && 'PlayBook' == $data['platform'] ) { 49 $data['name'] = 'PlayBook'; 50 } elseif ( $key = array_search( 'Kindle', $result['name'] ) ) { 51 $data['name'] = 'Kindle'; 52 } elseif ( $key = array_search( 'Safari', $result['name'] ) ) { 53 $data['name'] = 'Safari'; 54 } else { 55 $key = 0; 56 $data['name'] = 'webkit'; 57 } 58 $data['version'] = $result['version'][ $key ]; 59 } elseif ( $key = array_search( 'Opera', $result['name'] ) ) { 60 $data['name'] = $result['name'][ $key ]; 61 $data['version'] = $result['version'][ $key ]; 62 } elseif ( 'MSIE' == $result['name'][0] ) { 63 if ( $key = array_search( 'IEMobile', $result['name'] ) ) { 64 $data['name'] = 'Internet Explorer Mobile'; 65 } else { 66 $data['name'] = 'Internet Explorer'; 67 $key = 0; 68 } 69 $data['version'] = $result['version'][ $key ]; 70 } elseif ( 'Trident' == $result['name'][0] ) { 71 // IE 11 and beyond have switched to Trident 72 // http://msdn.microsoft.com/en-us/library/ie/hh869301%28v=vs.85%29.aspx 73 $data['name'] = 'Internet Explorer'; 74 if( '7.0' == $result['version'][0] ) { 65 75 $data['version'] = '11'; 66 76 } 67 77 } else { 68 69 70 78 $data['name'] = $result['name'][0]; 79 $data['version'] = $result['version'][0]; 80 } 71 81 72 if ( in_array( $data['name'], array( 'Kindle' ) ) ) 73 $data['platform'] = $data['name']; 82 if ( in_array( $data['name'], array( 'Kindle' ) ) ) { 83 $data['platform'] = $data['name']; 84 } 74 85 75 if ( in_array( $data['platform'], array( 'Android', 'iPad', 'iPhone' ) ) ) 76 $data['name'] = $data['platform']; 86 if ( in_array( $data['platform'], array( 'Android', 'iPad', 'iPhone' ) ) ) { 87 $data['name'] = $data['platform']; 88 } 77 89 78 // If Version/x.x.x was specified in UA string 79 if ( ! empty( $version ) ) 80 $data['version'] = $version; 90 // If Version/x.x.x was specified in UA string 91 if ( ! empty( $version ) ) { 92 $data['version'] = $version; 93 } 81 94 82 $browser_data = browsehappy_api_get_browser_data( $data['name'] ); 83 $data['update_url'] = $browser_data ? $browser_data->url : ''; 84 $data['img_src'] = $browser_data ? $browser_data->img_src : ''; 85 $data['img_src_ssl'] = $browser_data ? $browser_data->img_src_ssl : ''; 86 95 $browser_data = browsehappy_api_get_browser_data( $data['name'] ); 96 $data['update_url'] = $browser_data ? $browser_data->url : ''; 97 $data['img_src'] = $browser_data ? $browser_data->img_src : ''; 98 $data['img_src_ssl'] = $browser_data ? $browser_data->img_src_ssl : ''; 87 99 $data['current_version'] = get_browser_version_from_name( $data['name'] ); 88 $data['upgrade'] = ( ! empty( $data['current_version'] ) && version_compare( $data['version'], $data['current_version'], '<' ) );100 $data['upgrade'] = ( ! empty( $data['current_version'] ) && version_compare( $data['version'], $data['current_version'], '<' ) ); 89 101 $data['insecure'] = ( 'Internet Explorer' == $data['name'] && version_compare( $data['version'], '8', '<' ) ); 90 102 … … 97 109 return isset( $versions[ $name ] ) ? $versions[ $name ] : ''; 98 110 } 99
Note: See TracChangeset
for help on using the changeset viewer.