diff options
author | Andrew Dolgov <[email protected]> | 2012-10-28 12:21:21 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2012-10-28 12:21:21 +0400 |
commit | acccafe3daee1c94064202d38fa244bd5a15c2e7 (patch) | |
tree | 11407af73571632e239e1de01c4a7dfb7664503d /lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php | |
parent | 17525d012750697283a3758b0fe00c0a6945947f (diff) |
replace htmlpurifier with htmlawed
Diffstat (limited to 'lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php')
-rw-r--r-- | lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php b/lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php deleted file mode 100644 index feca469d7..000000000 --- a/lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php +++ /dev/null @@ -1,68 +0,0 @@ -<?php - -/** - * Validates a host according to the IPv4, IPv6 and DNS (future) specifications. - */ -class HTMLPurifier_AttrDef_URI_Host extends HTMLPurifier_AttrDef -{ - - /** - * Instance of HTMLPurifier_AttrDef_URI_IPv4 sub-validator - */ - protected $ipv4; - - /** - * Instance of HTMLPurifier_AttrDef_URI_IPv6 sub-validator - */ - protected $ipv6; - - public function __construct() { - $this->ipv4 = new HTMLPurifier_AttrDef_URI_IPv4(); - $this->ipv6 = new HTMLPurifier_AttrDef_URI_IPv6(); - } - - public function validate($string, $config, $context) { - $length = strlen($string); - // empty hostname is OK; it's usually semantically equivalent: - // the default host as defined by a URI scheme is used: - // - // If the URI scheme defines a default for host, then that - // default applies when the host subcomponent is undefined - // or when the registered name is empty (zero length). - if ($string === '') return ''; - if ($length > 1 && $string[0] === '[' && $string[$length-1] === ']') { - //IPv6 - $ip = substr($string, 1, $length - 2); - $valid = $this->ipv6->validate($ip, $config, $context); - if ($valid === false) return false; - return '['. $valid . ']'; - } - - // need to do checks on unusual encodings too - $ipv4 = $this->ipv4->validate($string, $config, $context); - if ($ipv4 !== false) return $ipv4; - - // A regular domain name. - - // This breaks I18N domain names, but we don't have proper IRI support, - // so force users to insert Punycode. If there's complaining we'll - // try to fix things into an international friendly form. - - // The productions describing this are: - $a = '[a-z]'; // alpha - $an = '[a-z0-9]'; // alphanum - $and = '[a-z0-9-]'; // alphanum | "-" - // domainlabel = alphanum | alphanum *( alphanum | "-" ) alphanum - $domainlabel = "$an($and*$an)?"; - // toplabel = alpha | alpha *( alphanum | "-" ) alphanum - $toplabel = "$a($and*$an)?"; - // hostname = *( domainlabel "." ) toplabel [ "." ] - $match = preg_match("/^($domainlabel\.)*$toplabel\.?$/i", $string); - if (!$match) return false; - - return $string; - } - -} - -// vim: et sw=4 sts=4 |