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