Вход Регистрация
Файл: classes/htmlpurifier/HTMLPurifier/AttrDef/CSS/Length.php
Строк: 81
<?php

/**
 * Represents a Length as defined by CSS.
 */
class HTMLPurifier_AttrDef_CSS_Length extends HTMLPurifier_AttrDef
{

    
/**
     * @type HTMLPurifier_Length|string
     */
    
protected $min;

    
/**
     * @type HTMLPurifier_Length|string
     */
    
protected $max;

    
/**
     * @param HTMLPurifier_Length|string $min Minimum length, or null for no bound. String is also acceptable.
     * @param HTMLPurifier_Length|string $max Maximum length, or null for no bound. String is also acceptable.
     */
    
public function __construct($min null$max null)
    {
        
$this->min $min !== null HTMLPurifier_Length::make($min) : null;
        
$this->max $max !== null HTMLPurifier_Length::make($max) : null;
    }

    
/**
     * @param string $string
     * @param HTMLPurifier_Config $config
     * @param HTMLPurifier_Context $context
     * @return bool|string
     */
    
public function validate($string$config$context)
    {
        
$string $this->parseCDATA($string);

        
// Optimizations
        
if ($string === '') {
            return 
false;
        }
        if (
$string === '0') {
            return 
'0';
        }
        if (
strlen($string) === 1) {
            return 
false;
        }

        
$length HTMLPurifier_Length::make($string);
        if (!
$length->isValid()) {
            return 
false;
        }

        if (
$this->min) {
            
$c $length->compareTo($this->min);
            if (
$c === false) {
                return 
false;
            }
            if (
$c 0) {
                return 
false;
            }
        }
        if (
$this->max) {
            
$c $length->compareTo($this->max);
            if (
$c === false) {
                return 
false;
            }
            if (
$c 0) {
                return 
false;
            }
        }
        return 
$length->toString();
    }
}

// vim: et sw=4 sts=4
Онлайн: 1
Реклама