On Thu, 9 Oct 2003 11:53:51 +1000, you wrote:

>Hi all,
>
>I'm interested in alternative solutions (to those found in the comments 
>on http://au.php.net/htmlspecialchars) for dealing with text pasted 
>into a textarea from Word et al.
>
>I want a way of 'dumbing down' certain characters (like quotes) before 
>putting them through my own smart quotes engine, and convert other 
>characters to their appropriate HTML entity.
>
>htmlspecialchars() doesn't seem to be converting a few test chars I 
>have (like curly quotes)
>
>
>I'm interested in hearing of a few different methods to overcome the 
>evil MS Word text :)

/**
 * XML equivalent of htmlentities() - £ becomes £
 * this function placed here to avoid calling in another include file
 **/
function xmlentities ($string, $quote_style = ENT_COMPAT) {
        static $trans; // using a static variable avoids repeatedly creating the
translation table
        if (!is_array ($trans)) {
                $trans = get_html_translation_table (HTML_ENTITIES, $quote_style);
                $trans[chr(128)] = '€';
                $trans[chr(130)] = '‚';
                $trans[chr(131)] = 'ƒ';
                $trans[chr(132)] = '„';
                $trans[chr(133)] = '…';
                $trans[chr(134)] = '†';
                $trans[chr(135)] = '‡';
                $trans[chr(136)] = 'ˆ';
                $trans[chr(137)] = '‰';
                $trans[chr(138)] = 'Š';
                $trans[chr(139)] = '‹';
                $trans[chr(140)] = 'Œ';
                $trans[chr(145)] = '‘';
                $trans[chr(146)] = '’';
                $trans[chr(147)] = '“';
                $trans[chr(148)] = '”';
                $trans[chr(149)] = '•';
                $trans[chr(150)] = '-';
                $trans[chr(151)] = '—';
                $trans[chr(152)] = '˜';
                $trans[chr(153)] = '™';
                $trans[chr(154)] = 'š';
                $trans[chr(155)] = '›';
                $trans[chr(156)] = 'œ';
                $trans[chr(159)] = 'Ÿ';
                array_walk ($trans, create_function ('&$a, $b', '$a = "&#" . ord
($b) . ";";'));
        }
        return (strtr ($string, $trans));
}

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to