123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- class HTMLPurifier_AttrDef_CSS_Multiple extends HTMLPurifier_AttrDef
- {
-
- public $single;
-
- public $max;
-
- public function __construct($single, $max = 4)
- {
- $this->single = $single;
- $this->max = $max;
- }
-
- public function validate($string, $config, $context)
- {
- $string = $this->mungeRgb($this->parseCDATA($string));
- if ($string === '') {
- return false;
- }
- $parts = explode(' ', $string);
- $length = count($parts);
- $final = '';
- for ($i = 0, $num = 0; $i < $length && $num < $this->max; $i++) {
- if (ctype_space($parts[$i])) {
- continue;
- }
- $result = $this->single->validate($parts[$i], $config, $context);
- if ($result !== false) {
- $final .= $result . ' ';
- $num++;
- }
- }
- if ($final === '') {
- return false;
- }
- return rtrim($final);
- }
- }
|