htmlentities-utf-2.phpt 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. --TEST--
  2. HTML entities with invalid chars and ENT_IGNORE
  3. --INI--
  4. output_handler=
  5. --FILE--
  6. <?php
  7. @setlocale (LC_CTYPE, "C");
  8. $strings = array("<", "\xD0", "\xD0\x90", "\xD0\x90\xD0", "\xD0\x90\xD0\xB0", "\xE0", "A\xE0", "\xE0\x80", "\xE0\x79", "\xE0\x80\xBE",
  9. "Voil\xE0", "Clich\xE9s",
  10. "\xFE", "\xFE\x41", "\xC3\xA9", "\xC3\x79", "\xF7\xBF\xBF\xBF", "\xFB\xBF\xBF\xBF\xBF", "\xFD\xBF\xBF\xBF\xBF\xBF",
  11. "\x41\xF7\xF7\x42", "\x42\xFB\xFB\x42", "\x43\xFD\xFD\x42", "\x44\xF7\xF7", "\x45\xFB\xFB", "\x46\xFD\xFD"
  12. );
  13. foreach($strings as $string) {
  14. $sc_encoded = htmlspecialchars ($string, ENT_QUOTES | ENT_IGNORE, "utf-8");
  15. var_dump(bin2hex($sc_encoded));
  16. $ent_encoded = htmlentities ($string, ENT_QUOTES | ENT_IGNORE, "utf-8");
  17. var_dump(bin2hex($ent_encoded));
  18. }
  19. ?>
  20. --EXPECT--
  21. string(8) "266c743b"
  22. string(8) "266c743b"
  23. string(0) ""
  24. string(0) ""
  25. string(4) "d090"
  26. string(4) "d090"
  27. string(4) "d090"
  28. string(4) "d090"
  29. string(8) "d090d0b0"
  30. string(8) "d090d0b0"
  31. string(0) ""
  32. string(0) ""
  33. string(2) "41"
  34. string(2) "41"
  35. string(0) ""
  36. string(0) ""
  37. string(2) "79"
  38. string(2) "79"
  39. string(0) ""
  40. string(0) ""
  41. string(8) "566f696c"
  42. string(8) "566f696c"
  43. string(12) "436c69636873"
  44. string(12) "436c69636873"
  45. string(0) ""
  46. string(0) ""
  47. string(2) "41"
  48. string(2) "41"
  49. string(4) "c3a9"
  50. string(16) "266561637574653b"
  51. string(2) "79"
  52. string(2) "79"
  53. string(0) ""
  54. string(0) ""
  55. string(0) ""
  56. string(0) ""
  57. string(0) ""
  58. string(0) ""
  59. string(4) "4142"
  60. string(4) "4142"
  61. string(4) "4242"
  62. string(4) "4242"
  63. string(4) "4342"
  64. string(4) "4342"
  65. string(2) "44"
  66. string(2) "44"
  67. string(2) "45"
  68. string(2) "45"
  69. string(2) "46"
  70. string(2) "46"