adding iso-8859-1 and us-ascii encoding support
[squirrelmail.git] / functions / encode / iso_8859_1.php
1 <?php
2 /**
3 * iso-8859-1 encoding functions
4 *
5 * takes a string of unicode entities and converts it to a iso-8859-1 encoded string
6 * Unsupported characters are replaced with ?.
7 *
8 * @version $Id$
9 * @copyright Copyright &copy; SquirrelMail Development Team, 2004
10 * @package squirrelmail
11 * @subpackage encode
12 */
13
14 /**
15 * Converts string to iso-8859-1
16 * @param string $string text with numeric unicode entities
17 * @return string iso-8859-1 encoded text
18 */
19 function charset_encode_iso_8859_1 ($string) {
20 // don't run encoding function, if there is no encoded characters
21 if (! preg_match("'&#[0-9]+;'",$string) ) return $string;
22
23 $string=preg_replace("/&#([0-9]+);/e","unicodetoiso88591('\\1')",$string);
24 // $string=preg_replace("/&#[xX]([0-9A-F]+);/e","unicodetoiso88591(hexdec('\\1'))",$string);
25
26 return $string;
27 }
28
29 /**
30 * Return iso-8859-1 symbol when unicode character number is provided
31 *
32 * This function is used internally by charset_encode_iso_8859_1
33 * function. It might be unavailable to other squirrelmail functions.
34 * Don't use it or make sure, that functions/encode/iso_8859_1.php is
35 * included.
36 *
37 * @param int $var decimal unicode value
38 * @return string iso-8859-1 character
39 */
40 function unicodetoiso88591($var) {
41
42 if ($var < 256) {
43 $ret = chr ($var);
44 } else {
45 $ret='?';
46 }
47 return $ret;
48 }
49 ?>