1: <?php
2:
3: /**
4: * Validates based on {ident} CSS grammar production
5: */
6: class HTMLPurifier_AttrDef_CSS_Ident extends HTMLPurifier_AttrDef
7: {
8:
9: /**
10: * @param string $string
11: * @param HTMLPurifier_Config $config
12: * @param HTMLPurifier_Context $context
13: * @return bool|string
14: */
15: public function validate($string, $config, $context)
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: $pattern = '/^(-?[A-Za-z_][A-Za-z_\-0-9]*)$/';
25: if (!preg_match($pattern, $string)) {
26: return false;
27: }
28: return $string;
29: }
30: }
31:
32: // vim: et sw=4 sts=4
33: