<?php
/**
* Zend Framework
*
* LICENSE
*
* This source file is subject to the new BSD license that is bundled
* with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://framework.zend.com/license/new-bsd
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@zend.com so we can send you a copy immediately.
*
* @category Zend
* @package Zend_Filter
* @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @version $Id: HtmlEntities.php 24594 2012-01-05 21:27:01Z matthew $
*/
/**
* @see Zend_Filter_Interface
*/
require_once 'Zend/Filter/Interface.php';
/**
* @category Zend
* @package Zend_Filter
* @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
class Zend_Filter_HtmlEntities implements Zend_Filter_Interface
{
/**
* Corresponds to the second htmlentities() argument
*
* @var integer
*/
protected $_quoteStyle;
/**
* Corresponds to the third htmlentities() argument
*
* @var string
*/
protected $_encoding;
/**
* Corresponds to the forth htmlentities() argument
*
* @var unknown_type
*/
protected $_doubleQuote;
/**
* Sets filter options
*
* @param integer|array $quoteStyle
* @param string $charSet
* @return void
*/
public function __construct($options = array())
{
if ($options instanceof Zend_Config) {
$options = $options->toArray();
} else if (!is_array($options)) {
$options = func_get_args();
$temp['quotestyle'] = array_shift($options);
if (!empty($options)) {
$temp['charset'] = array_shift($options);
}
$options = $temp;
}
if (!isset($options['quotestyle'])) {
$options['quotestyle'] = ENT_COMPAT;
}
if (!isset($options['encoding'])) {
$options['encoding'] = 'UTF-8';
}
if (isset($options['charset'])) {
$options['encoding'] = $options['charset'];
}
if (!isset($options['doublequote'])) {
$options['doublequote'] = true;
}
$this->setQuoteStyle($options['quotestyle']);
$this->setEncoding($options['encoding']);
$this->setDoubleQuote($options['doublequote']);
}
/**
* Returns the quoteStyle option
*
* @return integer
*/
public function getQuoteStyle()
{
return $this->_quoteStyle;
}
/**
* Sets the quoteStyle option
*
* @param integer $quoteStyle
* @return Zend_Filter_HtmlEntities Provides a fluent interface
*/
public function setQuoteStyle($quoteStyle)
{
$this->_quoteStyle = $quoteStyle;
return $this;
}
/**
* Get encoding
*
* @return string
*/
public function getEncoding()
{
return $this->_encoding;
}
/**
* Set encoding
*
* @param string $value
* @return Zend_Filter_HtmlEntities
*/
public function setEncoding($value)
{
$this->_encoding = (string) $value;
return $this;
}
/**
* Returns the charSet option
*
* Proxies to {@link getEncoding()}
*
* @return string
*/
public function getCharSet()
{
return $this->getEncoding();
}
/**
* Sets the charSet option
*
* Proxies to {@link setEncoding()}
*
* @param string $charSet
* @return Zend_Filter_HtmlEntities Provides a fluent interface
*/
public function setCharSet($charSet)
{
return $this->setEncoding($charSet);
}
/**
* Returns the doubleQuote option
*
* @return boolean
*/
public function getDoubleQuote()
{
return $this->_doubleQuote;
}
/**
* Sets the doubleQuote option
*
* @param boolean $doubleQuote
* @return Zend_Filter_HtmlEntities Provides a fluent interface
*/
public function setDoubleQuote($doubleQuote)
{
$this->_doubleQuote = (boolean) $doubleQuote;
return $this;
}
/**
* Defined by Zend_Filter_Interface
*
* Returns the string $value, converting characters to their corresponding HTML entity
* equivalents where they exist
*
* @param string $value
* @return string
*/
public function filter($value)
{
$filtered = htmlentities((string) $value, $this->getQuoteStyle(), $this->getEncoding(), $this->getDoubleQuote());
if (strlen((string) $value) && !strlen($filtered)) {
if (!function_exists('iconv')) {
require_once 'Zend/Filter/Exception.php';
throw new Zend_Filter_Exception('Encoding mismatch has resulted in htmlentities errors');
}
$enc = $this->getEncoding();
$value = iconv('', $enc . '//IGNORE', (string) $value);
$filtered = htmlentities($value, $this->getQuoteStyle(), $enc, $this->getDoubleQuote());
if (!strlen($filtered)) {
require_once 'Zend/Filter/Exception.php';
throw new Zend_Filter_Exception('Encoding mismatch has resulted in htmlentities errors');
}
}
return $filtered;
}
}
# |
Change |
User |
Description |
Committed |
|
#1
|
16170 |
perforce_software |
Move Chronicle files to follow new path scheme for branching. |
|
|
//guest/perforce_software/chronicle/library/Zend/Filter/HtmlEntities.php |
#1
|
8972 |
Matt Attaway |
Initial add of the Chronicle source code |
|
|