+++ /dev/null
-<?php\r
-\r
-/**\r
- * Validates the HTML type length (not to be confused with CSS's length).\r
- *\r
- * This accepts integer pixels or percentages as lengths for certain\r
- * HTML attributes.\r
- */\r
-\r
-class HTMLPurifier_AttrDef_HTML_Length extends HTMLPurifier_AttrDef_HTML_Pixels\r
-{\r
-\r
- /**\r
- * @param string $string\r
- * @param HTMLPurifier_Config $config\r
- * @param HTMLPurifier_Context $context\r
- * @return bool|string\r
- */\r
- public function validate($string, $config, $context)\r
- {\r
- $string = trim($string);\r
- if ($string === '') {\r
- return false;\r
- }\r
-\r
- $parent_result = parent::validate($string, $config, $context);\r
- if ($parent_result !== false) {\r
- return $parent_result;\r
- }\r
-\r
- $length = strlen($string);\r
- $last_char = $string[$length - 1];\r
-\r
- if ($last_char !== '%') {\r
- return false;\r
- }\r
-\r
- $points = substr($string, 0, $length - 1);\r
-\r
- if (!is_numeric($points)) {\r
- return false;\r
- }\r
-\r
- $points = (int)$points;\r
-\r
- if ($points < 0) {\r
- return '0%';\r
- }\r
- if ($points > 100) {\r
- return '100%';\r
- }\r
- return ((string)$points) . '%';\r
- }\r
-}\r
-\r
-// vim: et sw=4 sts=4\r