ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f87
HTMLPurifier_AttrDef_HTML_Nmtokens Class Reference

Validates contents based on NMTOKENS attribute type. More...

+ Inheritance diagram for HTMLPurifier_AttrDef_HTML_Nmtokens:
+ Collaboration diagram for HTMLPurifier_AttrDef_HTML_Nmtokens:

Public Member Functions

 validate ($string, $config, $context)
 
- Public Member Functions inherited from HTMLPurifier_AttrDef
 validate ($string, $config, $context)
 Validates and cleans passed string according to a definition. More...
 
 parseCDATA ($string)
 Convenience method that parses a string as if it were CDATA. More...
 
 make ($string)
 Factory method for creating this class from a string. More...
 

Protected Member Functions

 split ($string, $config, $context)
 Splits a space separated list of tokens into its constituent parts. More...
 
 filter ($tokens, $config, $context)
 Template method for removing certain tokens based on arbitrary criteria. More...
 
- Protected Member Functions inherited from HTMLPurifier_AttrDef
 mungeRgb ($string)
 Removes spaces from rgb(0, 0, 0) so that shorthand CSS properties work properly. More...
 
 expandCSSEscape ($string)
 Parses a possibly escaped CSS string and returns the "pure" version of it. More...
 

Additional Inherited Members

- Data Fields inherited from HTMLPurifier_AttrDef
 $minimized = false
 Tells us whether or not an HTML attribute is minimized. More...
 
 $required = false
 Tells us whether or not an HTML attribute is required. More...
 

Detailed Description

Validates contents based on NMTOKENS attribute type.

Definition at line 6 of file Nmtokens.php.

Member Function Documentation

◆ filter()

HTMLPurifier_AttrDef_HTML_Nmtokens::filter (   $tokens,
  $config,
  $context 
)
protected

Template method for removing certain tokens based on arbitrary criteria.

Note
If we wanted to be really functional, we'd do an array_filter with a callback. But... we're not.
Parameters
array$tokens
HTMLPurifier_Config$config
HTMLPurifier_Context$context
Returns
array

Definition at line 64 of file Nmtokens.php.

Referenced by validate().

65  {
66  return $tokens;
67  }
+ Here is the caller graph for this function:

◆ split()

HTMLPurifier_AttrDef_HTML_Nmtokens::split (   $string,
  $config,
  $context 
)
protected

Splits a space separated list of tokens into its constituent parts.

Parameters
string$string
HTMLPurifier_Config$config
HTMLPurifier_Context$context
Returns
array

Definition at line 39 of file Nmtokens.php.

Referenced by validate().

40  {
41  // OPTIMIZABLE!
42  // do the preg_match, capture all subpatterns for reformulation
43 
44  // we don't support U+00A1 and up codepoints or
45  // escaping because I don't know how to do that with regexps
46  // and plus it would complicate optimization efforts (you never
47  // see that anyway).
48  $pattern = '/(?:(?<=\s)|\A)' . // look behind for space or string start
49  '((?:--|-?[A-Za-z_])[A-Za-z_\-0-9]*)' .
50  '(?:(?=\s)|\z)/'; // look ahead for space or string end
51  preg_match_all($pattern, $string, $matches);
52  return $matches[1];
53  }
+ Here is the caller graph for this function:

◆ validate()

HTMLPurifier_AttrDef_HTML_Nmtokens::validate (   $string,
  $config,
  $context 
)
Parameters
string$string
HTMLPurifier_Config$config
HTMLPurifier_Context$context
Returns
bool|string

Definition at line 15 of file Nmtokens.php.

References filter(), and split().

16  {
17  $string = trim($string);
18 
19  // early abort: '' and '0' (strings that convert to false) are invalid
20  if (!$string) {
21  return false;
22  }
23 
24  $tokens = $this->split($string, $config, $context);
25  $tokens = $this->filter($tokens, $config, $context);
26  if (empty($tokens)) {
27  return false;
28  }
29  return implode(' ', $tokens);
30  }
split($string, $config, $context)
Splits a space separated list of tokens into its constituent parts.
Definition: Nmtokens.php:39
filter($tokens, $config, $context)
Template method for removing certain tokens based on arbitrary criteria.
Definition: Nmtokens.php:64
+ Here is the call graph for this function:

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