| 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
 |