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; } }