ILIAS  release_4-3 Revision
 All Data Structures Namespaces Files Functions Variables Groups Pages
HTMLPurifier_URIScheme Class Reference

Validator for the components of a URI for a specific scheme. More...

+ Inheritance diagram for HTMLPurifier_URIScheme:
+ Collaboration diagram for HTMLPurifier_URIScheme:

Public Member Functions

 doValidate (&$uri, $config, $context)
 Validates the components of a URI for a specific scheme.
 validate (&$uri, $config, $context)
 Public interface for validating components of a URI.

Data Fields

 $default_port = null
 Scheme's default port (integer).
 $browsable = false
 Whether or not URIs of this schem are locatable by a browser http and ftp are accessible, while mailto and news are not.
 $secure = false
 Whether or not data transmitted over this scheme is encrypted.
 $hierarchical = false
 Whether or not the URI always uses <hier_part>, resolves edge cases with making relative URIs absolute.
 $may_omit_host = false
 Whether or not the URI may omit a hostname when the scheme is explicitly specified, ala file:///path/to/file.

Detailed Description

Validator for the components of a URI for a specific scheme.

Definition at line 6 of file URIScheme.php.

Member Function Documentation

HTMLPurifier_URIScheme::doValidate ( $uri,
  $config,
  $context 
)
abstract

Validates the components of a URI for a specific scheme.

Parameters
$uriReference to a HTMLPurifier_URI object
$configHTMLPurifier_Config object
$contextHTMLPurifier_Context object
Returns
Bool success or failure

Reimplemented in HTMLPurifier_URIScheme_data, HTMLPurifier_URIScheme_file, HTMLPurifier_URIScheme_mailto, HTMLPurifier_URIScheme_ftp, HTMLPurifier_URIScheme_http, HTMLPurifier_URIScheme_news, and HTMLPurifier_URIScheme_nntp.

Referenced by validate().

+ Here is the caller graph for this function:

HTMLPurifier_URIScheme::validate ( $uri,
  $config,
  $context 
)

Public interface for validating components of a URI.

Performs a bunch of default actions. Don't overload this method.

Parameters
$uriReference to a HTMLPurifier_URI object
$configHTMLPurifier_Config object
$contextHTMLPurifier_Context object
Returns
Bool success or failure

Definition at line 58 of file URIScheme.php.

References doValidate().

{
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 &&
// if the scheme is present, a missing host is always in error
(!is_null($uri->scheme) && ($uri->host === '' || is_null($uri->host))) ||
// if the scheme is not present, a *blank* host is in error,
// since this translates into '///path' which most browsers
// interpret as being 'http://path'.
(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);
}

+ Here is the call graph for this function:

Field Documentation

HTMLPurifier_URIScheme::$browsable = false

Whether or not URIs of this schem are locatable by a browser http and ftp are accessible, while mailto and news are not.

Definition at line 20 of file URIScheme.php.

HTMLPurifier_URIScheme::$default_port = null

Scheme's default port (integer).

If an explicit port number is specified that coincides with the default port, it will be elided.

Definition at line 14 of file URIScheme.php.

HTMLPurifier_URIScheme::$hierarchical = false

Whether or not the URI always uses <hier_part>, resolves edge cases with making relative URIs absolute.

Definition at line 32 of file URIScheme.php.

HTMLPurifier_URIScheme::$may_omit_host = false

Whether or not the URI may omit a hostname when the scheme is explicitly specified, ala file:///path/to/file.

As of writing, 'file' is the only scheme that browsers support his properly.

Definition at line 39 of file URIScheme.php.

HTMLPurifier_URIScheme::$secure = false

Whether or not data transmitted over this scheme is encrypted.

https is secure, http is not.

Definition at line 26 of file URIScheme.php.


The documentation for this class was generated from the following file: