]> git.immae.eu Git - github/wallabag/wallabag.git/blame - inc/3rdparty/htmlpurifier/HTMLPurifier/AttrDef/HTML/Pixels.php
remove autoload section in composer.json
[github/wallabag/wallabag.git] / inc / 3rdparty / htmlpurifier / HTMLPurifier / AttrDef / HTML / Pixels.php
CommitLineData
d4949327
NL
1<?php\r
2\r
3/**\r
4 * Validates an integer representation of pixels according to the HTML spec.\r
5 */\r
6class HTMLPurifier_AttrDef_HTML_Pixels extends HTMLPurifier_AttrDef\r
7{\r
8\r
9 /**\r
10 * @type int\r
11 */\r
12 protected $max;\r
13\r
14 /**\r
15 * @param int $max\r
16 */\r
17 public function __construct($max = null)\r
18 {\r
19 $this->max = $max;\r
20 }\r
21\r
22 /**\r
23 * @param string $string\r
24 * @param HTMLPurifier_Config $config\r
25 * @param HTMLPurifier_Context $context\r
26 * @return bool|string\r
27 */\r
28 public function validate($string, $config, $context)\r
29 {\r
30 $string = trim($string);\r
31 if ($string === '0') {\r
32 return $string;\r
33 }\r
34 if ($string === '') {\r
35 return false;\r
36 }\r
37 $length = strlen($string);\r
38 if (substr($string, $length - 2) == 'px') {\r
39 $string = substr($string, 0, $length - 2);\r
40 }\r
41 if (!is_numeric($string)) {\r
42 return false;\r
43 }\r
44 $int = (int)$string;\r
45\r
46 if ($int < 0) {\r
47 return '0';\r
48 }\r
49\r
50 // upper-bound value, extremely high values can\r
51 // crash operating systems, see <http://ha.ckers.org/imagecrash.html>\r
52 // WARNING, above link WILL crash you if you're using Windows\r
53\r
54 if ($this->max !== null && $int > $this->max) {\r
55 return (string)$this->max;\r
56 }\r
57 return (string)$int;\r
58 }\r
59\r
60 /**\r
61 * @param string $string\r
62 * @return HTMLPurifier_AttrDef\r
63 */\r
64 public function make($string)\r
65 {\r
66 if ($string === '') {\r
67 $max = null;\r
68 } else {\r
69 $max = (int)$string;\r
70 }\r
71 $class = get_class($this);\r
72 return new $class($max);\r
73 }\r
74}\r
75\r
76// vim: et sw=4 sts=4\r