HTMLPurifier_AttrDef_HTML_Pixels::validate PHP Method

validate() public method

public validate ( string $string, HTMLPurifier_Config $config, HTMLPurifier_Context $context ) : boolean | string
$string string
$config HTMLPurifier_Config
$context HTMLPurifier_Context
return boolean | string
    public function validate($string, $config, $context)
    {
        $string = trim($string);
        if ($string === '0') {
            return $string;
        }
        if ($string === '') {
            return false;
        }
        $length = strlen($string);
        if (substr($string, $length - 2) == 'px') {
            $string = substr($string, 0, $length - 2);
        }
        if (!is_numeric($string)) {
            return false;
        }
        $int = (int) $string;
        if ($int < 0) {
            return '0';
        }
        // upper-bound value, extremely high values can
        // crash operating systems, see <http://ha.ckers.org/imagecrash.html>
        // WARNING, above link WILL crash you if you're using Windows
        if ($this->max !== null && $int > $this->max) {
            return (string) $this->max;
        }
        return (string) $int;
    }

Usage Example

Example #1
0
 /**
  * @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;
     }
     $points = substr($string, 0, $length - 1);
     if (!is_numeric($points)) {
         return false;
     }
     $points = (int) $points;
     if ($points < 0) {
         return '0%';
     }
     if ($points > 100) {
         return '100%';
     }
     return (string) $points . '%';
 }
HTMLPurifier_AttrDef_HTML_Pixels