[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/var/www/se3/includes/library/HTMLPurifier/AttrDef/URI/ -> IPv4.php (source)

   1  <?php
   2  
   3  /**
   4   * Validates an IPv4 address
   5   * @author Feyd @ forums.devnetwork.net (public domain)
   6   */
   7  class HTMLPurifier_AttrDef_URI_IPv4 extends HTMLPurifier_AttrDef
   8  {
   9  
  10      /**
  11       * IPv4 regex, protected so that IPv6 can reuse it.
  12       * @type string
  13       */
  14      protected $ip4;
  15  
  16      /**
  17       * @param string $aIP
  18       * @param HTMLPurifier_Config $config
  19       * @param HTMLPurifier_Context $context
  20       * @return bool|string
  21       */
  22      public function validate($aIP, $config, $context)
  23      {
  24          if (!$this->ip4) {
  25              $this->_loadRegex();
  26          }
  27  
  28          if (preg_match('#^' . $this->ip4 . '$#s', $aIP)) {
  29              return $aIP;
  30          }
  31          return false;
  32      }
  33  
  34      /**
  35       * Lazy load function to prevent regex from being stuffed in
  36       * cache.
  37       */
  38      protected function _loadRegex()
  39      {
  40          $oct = '(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])'; // 0-255
  41          $this->ip4 = "(?:{$oct}\\.{$oct}\\.{$oct}\\.{$oct})";
  42      }
  43  }
  44  
  45  // vim: et sw=4 sts=4


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1