iso_8859_1.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. * @copyright &copy; 2004-2006 The SquirrelMail Project Team
  9. * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  10. * @version $Id$
  11. * @package squirrelmail
  12. * @subpackage encode
  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. $string=preg_replace("/&#([0-9]+);/e","unicodetoiso88591('\\1')",$string);
  23. // $string=preg_replace("/&#[xX]([0-9A-F]+);/e","unicodetoiso88591(hexdec('\\1'))",$string);
  24. return $string;
  25. }
  26. /**
  27. * Return iso-8859-1 symbol when unicode character number is provided
  28. *
  29. * This function is used internally by charset_encode_iso_8859_1
  30. * function. It might be unavailable to other SquirrelMail functions.
  31. * Don't use it or make sure, that functions/encode/iso_8859_1.php is
  32. * included.
  33. *
  34. * @param int $var decimal unicode value
  35. * @return string iso-8859-1 character
  36. */
  37. function unicodetoiso88591($var) {
  38. if ($var < 256) {
  39. $ret = chr ($var);
  40. } else {
  41. $ret='?';
  42. }
  43. return $ret;
  44. }