12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- <?php
- /**
- * Validates tel (for phone numbers).
- *
- * The relevant specifications for this protocol are RFC 3966 and RFC 5341,
- * but this class takes a much simpler approach: we normalize phone
- * numbers so that they only include (possibly) a leading plus,
- * and then any number of digits and x'es.
- */
- class HTMLPurifier_URIScheme_tel extends HTMLPurifier_URIScheme
- {
- /**
- * @type bool
- */
- public $browsable = false;
- /**
- * @type bool
- */
- public $may_omit_host = true;
- /**
- * @param HTMLPurifier_URI $uri
- * @param HTMLPurifier_Config $config
- * @param HTMLPurifier_Context $context
- * @return bool
- */
- public function doValidate(&$uri, $config, $context)
- {
- $uri->userinfo = null;
- $uri->host = null;
- $uri->port = null;
- // Delete all non-numeric characters, commas, and non-x characters
- // from phone number, EXCEPT for a leading plus sign.
- $uri->path = preg_replace('/(?!^\+)[^\dx,]/', '',
- // Normalize e(x)tension to lower-case
- str_replace('X', 'x', rawurldecode($uri->path)));
- return true;
- }
- }
- // vim: et sw=4 sts=4
|