[ Index ]

PHP Cross Reference of WordPress

title

Body

[close]

/wp-includes/ -> vars.php (source)

   1  <?php
   2  /**
   3   * Creates common globals for the rest of WordPress
   4   *
   5   * Sets $pagenow global which is the current page. Checks
   6   * for the browser to set which one is currently being used.
   7   *
   8   * Detects which user environment WordPress is being used on.
   9   * Only attempts to check for Apache and IIS. Two web servers
  10   * with known permalink capability.
  11   *
  12   * @package WordPress
  13   */
  14  
  15  global $pagenow,
  16      $is_lynx, $is_gecko, $is_winIE, $is_macIE, $is_opera, $is_NS4, $is_safari, $is_chrome, $is_iphone, $is_IE,
  17      $is_apache, $is_IIS, $is_iis7;
  18  
  19  // On which page are we ?
  20  if ( is_admin() ) {
  21      // wp-admin pages are checked more carefully
  22      if ( is_network_admin() )
  23          preg_match('#/wp-admin/network/?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
  24      elseif ( is_user_admin() )
  25          preg_match('#/wp-admin/user/?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
  26      else
  27          preg_match('#/wp-admin/?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
  28      $pagenow = $self_matches[1];
  29      $pagenow = trim($pagenow, '/');
  30      $pagenow = preg_replace('#\?.*?$#', '', $pagenow);
  31      if ( '' === $pagenow || 'index' === $pagenow || 'index.php' === $pagenow ) {
  32          $pagenow = 'index.php';
  33      } else {
  34          preg_match('#(.*?)(/|$)#', $pagenow, $self_matches);
  35          $pagenow = strtolower($self_matches[1]);
  36          if ( '.php' !== substr($pagenow, -4, 4) )
  37              $pagenow .= '.php'; // for Options +Multiviews: /wp-admin/themes/index.php (themes.php is queried)
  38      }
  39  } else {
  40      if ( preg_match('#([^/]+\.php)([?/].*?)?$#i', $_SERVER['PHP_SELF'], $self_matches) )
  41          $pagenow = strtolower($self_matches[1]);
  42      else
  43          $pagenow = 'index.php';
  44  }
  45  unset($self_matches);
  46  
  47  // Simple browser detection
  48  $is_lynx = $is_gecko = $is_winIE = $is_macIE = $is_opera = $is_NS4 = $is_safari = $is_chrome = $is_iphone = false;
  49  
  50  if ( isset($_SERVER['HTTP_USER_AGENT']) ) {
  51      if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Lynx') !== false ) {
  52          $is_lynx = true;
  53      } elseif ( stripos($_SERVER['HTTP_USER_AGENT'], 'chrome') !== false ) {
  54          if ( stripos( $_SERVER['HTTP_USER_AGENT'], 'chromeframe' ) !== false ) {
  55              if ( $is_chrome = apply_filters( 'use_google_chrome_frame', is_admin() ) )
  56                  header( 'X-UA-Compatible: chrome=1' );
  57              $is_winIE = ! $is_chrome;
  58          } else {
  59              $is_chrome = true;
  60          }
  61      } elseif ( stripos($_SERVER['HTTP_USER_AGENT'], 'safari') !== false ) {
  62          $is_safari = true;
  63      } elseif ( strpos($_SERVER['HTTP_USER_AGENT'], 'Gecko') !== false ) {
  64          $is_gecko = true;
  65      } elseif ( strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'Win') !== false ) {
  66          $is_winIE = true;
  67      } elseif ( strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false ) {
  68          $is_macIE = true;
  69      } elseif ( strpos($_SERVER['HTTP_USER_AGENT'], 'Opera') !== false ) {
  70          $is_opera = true;
  71      } elseif ( strpos($_SERVER['HTTP_USER_AGENT'], 'Nav') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'Mozilla/4.') !== false ) {
  72          $is_NS4 = true;
  73      }
  74  }
  75  
  76  if ( $is_safari && stripos($_SERVER['HTTP_USER_AGENT'], 'mobile') !== false )
  77      $is_iphone = true;
  78  
  79  $is_IE = ( $is_macIE || $is_winIE );
  80  
  81  // Server detection
  82  
  83  /**
  84   * Whether the server software is Apache or something else
  85   * @global bool $is_apache
  86   */
  87  $is_apache = (strpos($_SERVER['SERVER_SOFTWARE'], 'Apache') !== false || strpos($_SERVER['SERVER_SOFTWARE'], 'LiteSpeed') !== false);
  88  
  89  /**
  90   * Whether the server software is IIS or something else
  91   * @global bool $is_IIS
  92   */
  93  $is_IIS = !$is_apache && (strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS') !== false || strpos($_SERVER['SERVER_SOFTWARE'], 'ExpressionDevServer') !== false);
  94  
  95  /**
  96   * Whether the server software is IIS 7.X
  97   * @global bool $is_iis7
  98   */
  99  $is_iis7 = $is_IIS && (strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS/7.') !== false);
 100  
 101  /**
 102   * Test if the current browser runs on a mobile device (smart phone, tablet, etc.)
 103   *
 104   * @return bool true|false
 105   */
 106  function wp_is_mobile() {
 107      static $is_mobile;
 108  
 109      if ( isset($is_mobile) )
 110          return $is_mobile;
 111  
 112      if ( empty($_SERVER['HTTP_USER_AGENT']) ) {
 113          $is_mobile = false;
 114      } elseif ( strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false // many mobile devices (all iPhone, iPad, etc.)
 115          || strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false
 116          || strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false
 117          || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false ) {
 118              $is_mobile = true;
 119      } else {
 120          $is_mobile = false;
 121      }
 122  
 123      return $is_mobile;
 124  }


Generated: Fri May 25 03:56:23 2012 Hosted by follow the white rabbit.