valid_values = array_flip ( $valid_values ); $this->case_sensitive = $case_sensitive; } /** * * @param string $string * @param HTMLPurifier_Config $config * @param HTMLPurifier_Context $context * @return bool|string */ public function validate($string, $config, $context) { $string = trim ( $string ); if (! $this->case_sensitive) { // we may want to do full case-insensitive libraries $string = ctype_lower ( $string ) ? $string : strtolower ( $string ); } $result = isset ( $this->valid_values [$string] ); return $result ? $string : false; } /** * * @param string $string * In form of comma-delimited list of case-insensitive * valid values. Example: "foo,bar,baz". Prepend "s:" to make * case sensitive * @return HTMLPurifier_AttrDef_Enum */ public function make($string) { if (strlen ( $string ) > 2 && $string [0] == 's' && $string [1] == ':') { $string = substr ( $string, 2 ); $sensitive = true; } else { $sensitive = false; } $values = explode ( ',', $string ); return new HTMLPurifier_AttrDef_Enum ( $values, $sensitive ); } } // vim: et sw=4 sts=4