4 * Validates tel (for phone numbers).
6 * The relevant specifications for this protocol are RFC 3966 and RFC 5341,
7 * but this class takes a much simpler approach: we normalize phone
8 * numbers so that they only include (possibly) a leading plus,
9 * and then any number of digits and x'es.
12 class HTMLPurifier_URIScheme_tel
extends HTMLPurifier_URIScheme
17 public $browsable = false;
22 public $may_omit_host = true;
25 * @param HTMLPurifier_URI $uri
26 * @param HTMLPurifier_Config $config
27 * @param HTMLPurifier_Context $context
30 public function doValidate(&$uri, $config, $context)
32 $uri->userinfo
= null;
36 // Delete all non-numeric characters, non-x characters
37 // from phone number, EXCEPT for a leading plus sign.
38 $uri->path
= preg_replace('/(?!^\+)[^\dx]/', '',
39 // Normalize e(x)tension to lower-case
40 str_replace('X', 'x', $uri->path
));