]> git.immae.eu Git - github/wallabag/wallabag.git/blame - inc/3rdparty/htmlpurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php
remove autoload section in composer.json
[github/wallabag/wallabag.git] / inc / 3rdparty / htmlpurifier / HTMLPurifier / AttrDef / HTML / MultiLength.php
CommitLineData
d4949327
NL
1<?php\r
2\r
3/**\r
4 * Validates a MultiLength as defined by the HTML spec.\r
5 *\r
6 * A multilength is either a integer (pixel count), a percentage, or\r
7 * a relative number.\r
8 */\r
9class HTMLPurifier_AttrDef_HTML_MultiLength extends HTMLPurifier_AttrDef_HTML_Length\r
10{\r
11\r
12 /**\r
13 * @param string $string\r
14 * @param HTMLPurifier_Config $config\r
15 * @param HTMLPurifier_Context $context\r
16 * @return bool|string\r
17 */\r
18 public function validate($string, $config, $context)\r
19 {\r
20 $string = trim($string);\r
21 if ($string === '') {\r
22 return false;\r
23 }\r
24\r
25 $parent_result = parent::validate($string, $config, $context);\r
26 if ($parent_result !== false) {\r
27 return $parent_result;\r
28 }\r
29\r
30 $length = strlen($string);\r
31 $last_char = $string[$length - 1];\r
32\r
33 if ($last_char !== '*') {\r
34 return false;\r
35 }\r
36\r
37 $int = substr($string, 0, $length - 1);\r
38\r
39 if ($int == '') {\r
40 return '*';\r
41 }\r
42 if (!is_numeric($int)) {\r
43 return false;\r
44 }\r
45\r
46 $int = (int)$int;\r
47 if ($int < 0) {\r
48 return false;\r
49 }\r
50 if ($int == 0) {\r
51 return '0';\r
52 }\r
53 if ($int == 1) {\r
54 return '*';\r
55 }\r
56 return ((string)$int) . '*';\r
57 }\r
58}\r
59\r
60// vim: et sw=4 sts=4\r