HTMLPurifier_URIScheme::validate PHP Method

validate() public method

Public interface for validating components of a URI. Performs a bunch of default actions. Don't overload this method.
public validate ( HTMLPurifier_URI &$uri, HTMLPurifier_Config $config, HTMLPurifier_Context $context ) : boolean
$uri HTMLPurifier_URI Reference to a HTMLPurifier_URI object
$config HTMLPurifier_Config
$context HTMLPurifier_Context
return boolean success or failure
    public function validate(&$uri, $config, $context)
    {
        if ($this->default_port == $uri->port) {
            $uri->port = null;
        }
        // kludge: browsers do funny things when the scheme but not the
        // authority is set
        if (!$this->may_omit_host && (!is_null($uri->scheme) && ($uri->host === '' || is_null($uri->host))) || is_null($uri->scheme) && $uri->host === '') {
            do {
                if (is_null($uri->scheme)) {
                    if (substr($uri->path, 0, 2) != '//') {
                        $uri->host = null;
                        break;
                    }
                    // URI is '////path', so we cannot nullify the
                    // host to preserve semantics.  Try expanding the
                    // hostname instead (fall through)
                }
                // first see if we can manually insert a hostname
                $host = $config->get('URI.Host');
                if (!is_null($host)) {
                    $uri->host = $host;
                } else {
                    // we can't do anything sensible, reject the URL.
                    return false;
                }
            } while (false);
        }
        return $this->doValidate($uri, $config, $context);
    }

Usage Example

コード例 #1
0
ファイル: nntp.php プロジェクト: fferriere/web
 function validate(&$uri, $config, &$context)
 {
     parent::validate($uri, $config, $context);
     $uri->userinfo = null;
     $uri->query = null;
     return true;
 }
All Usage Examples Of HTMLPurifier_URIScheme::validate
HTMLPurifier_URIScheme