htmlspecialchars_basic.phpt 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. --TEST--
  2. Test htmlspecialchars() function : basic functionality
  3. --FILE--
  4. <?php
  5. /* Prototype : string htmlspecialchars ( string $string [, int $quote_style [, string $charset [, bool $double_encode ]]] )
  6. * Description: Convert special characters to HTML entities
  7. * Source code: ext/standard/string.c
  8. */
  9. echo "*** Testing htmlspecialchars() : basic functionality ***\n";
  10. $s1 = "abc<>\"&\n";
  11. $s2 = "&&abc<>\"&\n";
  12. $s3 = "a>,\<bc<>\"&\n";
  13. $s4 = "a\'\'&bc<>\"&\n";
  14. $s5 = "&amp;&lt;\n";
  15. echo "Basic tests\n";
  16. echo "Test 1: " . htmlspecialchars ($s1);
  17. echo "Test 2: " . htmlspecialchars ($s2);
  18. echo "Test 3: " . htmlspecialchars ($s3);
  19. echo "Test 4: " . htmlspecialchars ($s4);
  20. echo "Test 5: " . htmlspecialchars ($s5);
  21. echo "Test 6: " . htmlspecialchars ($s1,ENT_NOQUOTES);
  22. echo "Test 7: " . htmlspecialchars ($s2,ENT_NOQUOTES);
  23. echo "Test 8: " . htmlspecialchars ($s3,ENT_NOQUOTES);
  24. echo "Test 9: " . htmlspecialchars ($s4,ENT_NOQUOTES);
  25. echo "Test 10: " . htmlspecialchars ($s5,ENT_NOQUOTES);
  26. echo "Test 11: " . htmlspecialchars ($s1,ENT_COMPAT);
  27. echo "Test 12: " . htmlspecialchars ($s2,ENT_COMPAT);
  28. echo "Test 13: " . htmlspecialchars ($s3,ENT_COMPAT);
  29. echo "Test 14: " . htmlspecialchars ($s4,ENT_COMPAT);
  30. echo "Test 15: " . htmlspecialchars ($s5,ENT_COMPAT);
  31. echo "Test 16: " . htmlspecialchars ($s1,ENT_QUOTES);
  32. echo "Test 17: " . htmlspecialchars ($s2,ENT_QUOTES);
  33. echo "Test 18: " . htmlspecialchars ($s3,ENT_QUOTES);
  34. echo "Test 19: " . htmlspecialchars ($s4,ENT_QUOTES);
  35. echo "Test 20: " . htmlspecialchars ($s5,ENT_QUOTES);
  36. echo "\nTry with char set option - specify default ISO-8859-1\n";
  37. echo "Test 21: " . htmlspecialchars ($s1,ENT_NOQUOTES, "ISO-8859-1");
  38. echo "Test 22: " . htmlspecialchars ($s2,ENT_COMPAT, "ISO-8859-1");
  39. echo "Test 23: " . htmlspecialchars ($s3,ENT_QUOTES, "ISO-8859-1");
  40. echo "Test 24: " . htmlspecialchars ($s5,ENT_QUOTES, "ISO-8859-1");
  41. echo "\nTry with double decode FALSE\n";
  42. $s1 = "&quot;&amp;xyz&gt;abc&quot;\n";
  43. $s2 = "&quot;&amp;123&lt;456&quot;\n";
  44. $s3 = "\"300 < 400\"\n";
  45. echo "Test 25: " . htmlspecialchars ($s1,ENT_NOQUOTES, "ISO-8859-1", false);
  46. echo "Test 26: " . htmlspecialchars ($s2,ENT_NOQUOTES, "ISO-8859-1", false);
  47. echo "Test 27: " . htmlspecialchars ($s3,ENT_NOQUOTES, "ISO-8859-1", false);
  48. echo "\nTry with double decode TRUE\n";
  49. echo "Test 28: " . htmlspecialchars ($s1, ENT_NOQUOTES, "ISO-8859-1", true);
  50. echo "Test 29: " . htmlspecialchars ($s2, ENT_NOQUOTES, "ISO-8859-1", true);
  51. ?>
  52. ===DONE===
  53. --EXPECT--
  54. *** Testing htmlspecialchars() : basic functionality ***
  55. Basic tests
  56. Test 1: abc&lt;&gt;&quot;&amp;
  57. Test 2: &amp;&amp;abc&lt;&gt;&quot;&amp;
  58. Test 3: a&gt;,\&lt;bc&lt;&gt;&quot;&amp;
  59. Test 4: a\'\'&amp;bc&lt;&gt;&quot;&amp;
  60. Test 5: &amp;amp;&amp;lt;
  61. Test 6: abc&lt;&gt;"&amp;
  62. Test 7: &amp;&amp;abc&lt;&gt;"&amp;
  63. Test 8: a&gt;,\&lt;bc&lt;&gt;"&amp;
  64. Test 9: a\'\'&amp;bc&lt;&gt;"&amp;
  65. Test 10: &amp;amp;&amp;lt;
  66. Test 11: abc&lt;&gt;&quot;&amp;
  67. Test 12: &amp;&amp;abc&lt;&gt;&quot;&amp;
  68. Test 13: a&gt;,\&lt;bc&lt;&gt;&quot;&amp;
  69. Test 14: a\'\'&amp;bc&lt;&gt;&quot;&amp;
  70. Test 15: &amp;amp;&amp;lt;
  71. Test 16: abc&lt;&gt;&quot;&amp;
  72. Test 17: &amp;&amp;abc&lt;&gt;&quot;&amp;
  73. Test 18: a&gt;,\&lt;bc&lt;&gt;&quot;&amp;
  74. Test 19: a\&#039;\&#039;&amp;bc&lt;&gt;&quot;&amp;
  75. Test 20: &amp;amp;&amp;lt;
  76. Try with char set option - specify default ISO-8859-1
  77. Test 21: abc&lt;&gt;"&amp;
  78. Test 22: &amp;&amp;abc&lt;&gt;&quot;&amp;
  79. Test 23: a&gt;,\&lt;bc&lt;&gt;&quot;&amp;
  80. Test 24: &amp;amp;&amp;lt;
  81. Try with double decode FALSE
  82. Test 25: &quot;&amp;xyz&gt;abc&quot;
  83. Test 26: &quot;&amp;123&lt;456&quot;
  84. Test 27: "300 &lt; 400"
  85. Try with double decode TRUE
  86. Test 28: &amp;quot;&amp;amp;xyz&amp;gt;abc&amp;quot;
  87. Test 29: &amp;quot;&amp;amp;123&amp;lt;456&amp;quot;
  88. ===DONE===