Whoops, forgot to edit WHATSNEW
[htmlpurifier.git] / library / HTMLPurifier / AttrDef / URI / IPv4.php
blob30ac16c9e73bd952ed5e65a0951fca9ee9d72aa9
1 <?php
3 /**
4 * Validates an IPv4 address
5 * @author Feyd @ forums.devnetwork.net (public domain)
6 */
7 class HTMLPurifier_AttrDef_URI_IPv4 extends HTMLPurifier_AttrDef
10 /**
11 * IPv4 regex, protected so that IPv6 can reuse it.
12 * @type string
14 protected $ip4;
16 /**
17 * @param string $aIP
18 * @param HTMLPurifier_Config $config
19 * @param HTMLPurifier_Context $context
20 * @return bool|string
22 public function validate($aIP, $config, $context)
24 if (!$this->ip4) {
25 $this->_loadRegex();
28 if (preg_match('#^' . $this->ip4 . '$#s', $aIP)) {
29 return $aIP;
31 return false;
34 /**
35 * Lazy load function to prevent regex from being stuffed in
36 * cache.
38 protected function _loadRegex()
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})";
45 // vim: et sw=4 sts=4