Thomas Bruederli
2012-11-19 c72a96144de1e5674159f4010ec0e44c9d946a5b
program/lib/html2text.php
@@ -135,6 +135,14 @@
    var $width = 70;
    /**
     *  Target character encoding for output text
     *
     *  @var string $charset
     *  @access public
     */
    var $charset = 'UTF-8';
    /**
     *  List of preg* regular expression patterns to search for,
     *  used in conjunction with $replace.
     *
@@ -347,7 +355,7 @@
     *  @access public
     *  @return void
     */
    function html2text( $source = '', $from_file = false, $do_links = true, $width = 75 )
    function html2text( $source = '', $from_file = false, $do_links = true, $width = 75, $charset = 'UTF-8' )
    {
        if ( !empty($source) ) {
            $this->set_html($source, $from_file);
@@ -356,6 +364,7 @@
        $this->set_base_url();
        $this->_do_links = $do_links;
        $this->width = $width;
        $this->charset = $charset;
    }
    /**
@@ -517,7 +526,7 @@
        $text = preg_replace($this->ent_search, $this->ent_replace, $text);
        // Replace known html entities
        $text = html_entity_decode($text, ENT_QUOTES, 'UTF-8');
        $text = html_entity_decode($text, ENT_QUOTES, $this->charset);
        // Remove unknown/unhandled entities (this cannot be done in search-and-replace block)
        $text = preg_replace('/&([a-zA-Z0-9]{2,6}|#[0-9]{2,4});/', '', $text);
@@ -732,14 +741,14 @@
     */
    private function _strtoupper($str)
    {
        $str = html_entity_decode($str, ENT_COMPAT, RCMAIL_CHARSET);
        $str = html_entity_decode($str, ENT_COMPAT, $this->charset);
        if (function_exists('mb_strtoupper'))
            $str = mb_strtoupper($str);
        else
            $str = strtoupper($str);
        $str = htmlspecialchars($str, ENT_COMPAT, RCMAIL_CHARSET);
        $str = htmlspecialchars($str, ENT_COMPAT, $this->charset);
        return $str;
    }