htmlspecialchars.phpt 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. --TEST--
  2. Test htmlspecialchars() function
  3. --FILE--
  4. <?php
  5. /* retrieving htmlspecialchars from the ANSI character table */
  6. echo "*** Retrieving htmlspecialchars for 256 characters ***\n";
  7. for($i=0; $i<256; $i++)
  8. var_dump( bin2hex( htmlspecialchars("chr($i)") ) );
  9. /* giving NULL as the argument */
  10. echo "\n*** Testing htmlspecialchars() with NULL as first, second and third argument ***\n";
  11. var_dump( htmlspecialchars("<br>", ENT_NOQUOTES, NULL) );
  12. var_dump( htmlspecialchars("<br>", ENT_QUOTES, NULL) );
  13. var_dump( htmlspecialchars("<br>", ENT_COMPAT, NULL) );
  14. /* giving long string to check for proper memory re-allocation */
  15. echo "\n*** Checking a long string for proper memory allocation ***\n";
  16. var_dump( htmlspecialchars("<br>Testing<p>New file.</p><p><br>File <b><i><u>WORKS!!!</i></u></b></p><br><p>End of file!!!</p>", ENT_QUOTES, 'iso-8859-1' ) );
  17. /* Giving a normal string */
  18. echo "\n*** Testing a normal string with htmlspecialchars() ***\n";
  19. var_dump( htmlspecialchars("<br>Testing<p>New file.</p> ", ENT_QUOTES, 'iso-8859-1' ) );
  20. /* checking behavior of quote */
  21. echo "\n*** Testing htmlspecialchars() on a quote...\n";
  22. $str = "A 'quote' is <b>bold</b>";
  23. var_dump( htmlspecialchars($str) );
  24. var_dump( htmlspecialchars($str, ENT_QUOTES) );
  25. var_dump( htmlspecialchars($str, ENT_NOQUOTES) );
  26. var_dump( htmlspecialchars($str, ENT_COMPAT) );
  27. echo "Done\n"
  28. ?>
  29. --EXPECT--
  30. *** Retrieving htmlspecialchars for 256 characters ***
  31. string(12) "636872283029"
  32. string(12) "636872283129"
  33. string(12) "636872283229"
  34. string(12) "636872283329"
  35. string(12) "636872283429"
  36. string(12) "636872283529"
  37. string(12) "636872283629"
  38. string(12) "636872283729"
  39. string(12) "636872283829"
  40. string(12) "636872283929"
  41. string(14) "63687228313029"
  42. string(14) "63687228313129"
  43. string(14) "63687228313229"
  44. string(14) "63687228313329"
  45. string(14) "63687228313429"
  46. string(14) "63687228313529"
  47. string(14) "63687228313629"
  48. string(14) "63687228313729"
  49. string(14) "63687228313829"
  50. string(14) "63687228313929"
  51. string(14) "63687228323029"
  52. string(14) "63687228323129"
  53. string(14) "63687228323229"
  54. string(14) "63687228323329"
  55. string(14) "63687228323429"
  56. string(14) "63687228323529"
  57. string(14) "63687228323629"
  58. string(14) "63687228323729"
  59. string(14) "63687228323829"
  60. string(14) "63687228323929"
  61. string(14) "63687228333029"
  62. string(14) "63687228333129"
  63. string(14) "63687228333229"
  64. string(14) "63687228333329"
  65. string(14) "63687228333429"
  66. string(14) "63687228333529"
  67. string(14) "63687228333629"
  68. string(14) "63687228333729"
  69. string(14) "63687228333829"
  70. string(14) "63687228333929"
  71. string(14) "63687228343029"
  72. string(14) "63687228343129"
  73. string(14) "63687228343229"
  74. string(14) "63687228343329"
  75. string(14) "63687228343429"
  76. string(14) "63687228343529"
  77. string(14) "63687228343629"
  78. string(14) "63687228343729"
  79. string(14) "63687228343829"
  80. string(14) "63687228343929"
  81. string(14) "63687228353029"
  82. string(14) "63687228353129"
  83. string(14) "63687228353229"
  84. string(14) "63687228353329"
  85. string(14) "63687228353429"
  86. string(14) "63687228353529"
  87. string(14) "63687228353629"
  88. string(14) "63687228353729"
  89. string(14) "63687228353829"
  90. string(14) "63687228353929"
  91. string(14) "63687228363029"
  92. string(14) "63687228363129"
  93. string(14) "63687228363229"
  94. string(14) "63687228363329"
  95. string(14) "63687228363429"
  96. string(14) "63687228363529"
  97. string(14) "63687228363629"
  98. string(14) "63687228363729"
  99. string(14) "63687228363829"
  100. string(14) "63687228363929"
  101. string(14) "63687228373029"
  102. string(14) "63687228373129"
  103. string(14) "63687228373229"
  104. string(14) "63687228373329"
  105. string(14) "63687228373429"
  106. string(14) "63687228373529"
  107. string(14) "63687228373629"
  108. string(14) "63687228373729"
  109. string(14) "63687228373829"
  110. string(14) "63687228373929"
  111. string(14) "63687228383029"
  112. string(14) "63687228383129"
  113. string(14) "63687228383229"
  114. string(14) "63687228383329"
  115. string(14) "63687228383429"
  116. string(14) "63687228383529"
  117. string(14) "63687228383629"
  118. string(14) "63687228383729"
  119. string(14) "63687228383829"
  120. string(14) "63687228383929"
  121. string(14) "63687228393029"
  122. string(14) "63687228393129"
  123. string(14) "63687228393229"
  124. string(14) "63687228393329"
  125. string(14) "63687228393429"
  126. string(14) "63687228393529"
  127. string(14) "63687228393629"
  128. string(14) "63687228393729"
  129. string(14) "63687228393829"
  130. string(14) "63687228393929"
  131. string(16) "6368722831303029"
  132. string(16) "6368722831303129"
  133. string(16) "6368722831303229"
  134. string(16) "6368722831303329"
  135. string(16) "6368722831303429"
  136. string(16) "6368722831303529"
  137. string(16) "6368722831303629"
  138. string(16) "6368722831303729"
  139. string(16) "6368722831303829"
  140. string(16) "6368722831303929"
  141. string(16) "6368722831313029"
  142. string(16) "6368722831313129"
  143. string(16) "6368722831313229"
  144. string(16) "6368722831313329"
  145. string(16) "6368722831313429"
  146. string(16) "6368722831313529"
  147. string(16) "6368722831313629"
  148. string(16) "6368722831313729"
  149. string(16) "6368722831313829"
  150. string(16) "6368722831313929"
  151. string(16) "6368722831323029"
  152. string(16) "6368722831323129"
  153. string(16) "6368722831323229"
  154. string(16) "6368722831323329"
  155. string(16) "6368722831323429"
  156. string(16) "6368722831323529"
  157. string(16) "6368722831323629"
  158. string(16) "6368722831323729"
  159. string(16) "6368722831323829"
  160. string(16) "6368722831323929"
  161. string(16) "6368722831333029"
  162. string(16) "6368722831333129"
  163. string(16) "6368722831333229"
  164. string(16) "6368722831333329"
  165. string(16) "6368722831333429"
  166. string(16) "6368722831333529"
  167. string(16) "6368722831333629"
  168. string(16) "6368722831333729"
  169. string(16) "6368722831333829"
  170. string(16) "6368722831333929"
  171. string(16) "6368722831343029"
  172. string(16) "6368722831343129"
  173. string(16) "6368722831343229"
  174. string(16) "6368722831343329"
  175. string(16) "6368722831343429"
  176. string(16) "6368722831343529"
  177. string(16) "6368722831343629"
  178. string(16) "6368722831343729"
  179. string(16) "6368722831343829"
  180. string(16) "6368722831343929"
  181. string(16) "6368722831353029"
  182. string(16) "6368722831353129"
  183. string(16) "6368722831353229"
  184. string(16) "6368722831353329"
  185. string(16) "6368722831353429"
  186. string(16) "6368722831353529"
  187. string(16) "6368722831353629"
  188. string(16) "6368722831353729"
  189. string(16) "6368722831353829"
  190. string(16) "6368722831353929"
  191. string(16) "6368722831363029"
  192. string(16) "6368722831363129"
  193. string(16) "6368722831363229"
  194. string(16) "6368722831363329"
  195. string(16) "6368722831363429"
  196. string(16) "6368722831363529"
  197. string(16) "6368722831363629"
  198. string(16) "6368722831363729"
  199. string(16) "6368722831363829"
  200. string(16) "6368722831363929"
  201. string(16) "6368722831373029"
  202. string(16) "6368722831373129"
  203. string(16) "6368722831373229"
  204. string(16) "6368722831373329"
  205. string(16) "6368722831373429"
  206. string(16) "6368722831373529"
  207. string(16) "6368722831373629"
  208. string(16) "6368722831373729"
  209. string(16) "6368722831373829"
  210. string(16) "6368722831373929"
  211. string(16) "6368722831383029"
  212. string(16) "6368722831383129"
  213. string(16) "6368722831383229"
  214. string(16) "6368722831383329"
  215. string(16) "6368722831383429"
  216. string(16) "6368722831383529"
  217. string(16) "6368722831383629"
  218. string(16) "6368722831383729"
  219. string(16) "6368722831383829"
  220. string(16) "6368722831383929"
  221. string(16) "6368722831393029"
  222. string(16) "6368722831393129"
  223. string(16) "6368722831393229"
  224. string(16) "6368722831393329"
  225. string(16) "6368722831393429"
  226. string(16) "6368722831393529"
  227. string(16) "6368722831393629"
  228. string(16) "6368722831393729"
  229. string(16) "6368722831393829"
  230. string(16) "6368722831393929"
  231. string(16) "6368722832303029"
  232. string(16) "6368722832303129"
  233. string(16) "6368722832303229"
  234. string(16) "6368722832303329"
  235. string(16) "6368722832303429"
  236. string(16) "6368722832303529"
  237. string(16) "6368722832303629"
  238. string(16) "6368722832303729"
  239. string(16) "6368722832303829"
  240. string(16) "6368722832303929"
  241. string(16) "6368722832313029"
  242. string(16) "6368722832313129"
  243. string(16) "6368722832313229"
  244. string(16) "6368722832313329"
  245. string(16) "6368722832313429"
  246. string(16) "6368722832313529"
  247. string(16) "6368722832313629"
  248. string(16) "6368722832313729"
  249. string(16) "6368722832313829"
  250. string(16) "6368722832313929"
  251. string(16) "6368722832323029"
  252. string(16) "6368722832323129"
  253. string(16) "6368722832323229"
  254. string(16) "6368722832323329"
  255. string(16) "6368722832323429"
  256. string(16) "6368722832323529"
  257. string(16) "6368722832323629"
  258. string(16) "6368722832323729"
  259. string(16) "6368722832323829"
  260. string(16) "6368722832323929"
  261. string(16) "6368722832333029"
  262. string(16) "6368722832333129"
  263. string(16) "6368722832333229"
  264. string(16) "6368722832333329"
  265. string(16) "6368722832333429"
  266. string(16) "6368722832333529"
  267. string(16) "6368722832333629"
  268. string(16) "6368722832333729"
  269. string(16) "6368722832333829"
  270. string(16) "6368722832333929"
  271. string(16) "6368722832343029"
  272. string(16) "6368722832343129"
  273. string(16) "6368722832343229"
  274. string(16) "6368722832343329"
  275. string(16) "6368722832343429"
  276. string(16) "6368722832343529"
  277. string(16) "6368722832343629"
  278. string(16) "6368722832343729"
  279. string(16) "6368722832343829"
  280. string(16) "6368722832343929"
  281. string(16) "6368722832353029"
  282. string(16) "6368722832353129"
  283. string(16) "6368722832353229"
  284. string(16) "6368722832353329"
  285. string(16) "6368722832353429"
  286. string(16) "6368722832353529"
  287. *** Testing htmlspecialchars() with NULL as first, second and third argument ***
  288. string(10) "&lt;br&gt;"
  289. string(10) "&lt;br&gt;"
  290. string(10) "&lt;br&gt;"
  291. *** Checking a long string for proper memory allocation ***
  292. string(187) "&lt;br&gt;Testing&lt;p&gt;New file.&lt;/p&gt;&lt;p&gt;&lt;br&gt;File &lt;b&gt;&lt;i&gt;&lt;u&gt;WORKS!!!&lt;/i&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;br&gt;&lt;p&gt;End of file!!!&lt;/p&gt;"
  293. *** Testing a normal string with htmlspecialchars() ***
  294. string(46) "&lt;br&gt;Testing&lt;p&gt;New file.&lt;/p&gt; "
  295. *** Testing htmlspecialchars() on a quote...
  296. string(46) "A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt;"
  297. string(46) "A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt;"
  298. string(36) "A 'quote' is &lt;b&gt;bold&lt;/b&gt;"
  299. string(36) "A 'quote' is &lt;b&gt;bold&lt;/b&gt;"
  300. Done