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