| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | <?php/** * Validates a MultiLength as defined by the HTML spec. * * A multilength is either a integer (pixel count), a percentage, or * a relative number. */class HTMLPurifier_AttrDef_HTML_MultiLength extends HTMLPurifier_AttrDef_HTML_Length{    /**     * @param string $string     * @param HTMLPurifier_Config $config     * @param HTMLPurifier_Context $context     * @return bool|string     */    public function validate($string, $config, $context)    {        $string = trim($string);        if ($string === '') {            return false;        }        $parent_result = parent::validate($string, $config, $context);        if ($parent_result !== false) {            return $parent_result;        }        $length = strlen($string);        $last_char = $string[$length - 1];        if ($last_char !== '*') {            return false;        }        $int = substr($string, 0, $length - 1);        if ($int == '') {            return '*';        }        if (!is_numeric($int)) {            return false;        }        $int = (int)$int;        if ($int < 0) {            return false;        }        if ($int == 0) {            return '0';        }        if ($int == 1) {            return '*';        }        return ((string)$int) . '*';    }}// vim: et sw=4 sts=4
 |