--TEST-- Test htmlspecialchars_decode() function : usage variations - heredoc strings for 'string' argument --FILE-- Roy's height > Sam's height 13 < 25 1111 & 0000 = 0000 "This is a double quoted string" EOT; // heredoc with different whitespaces $diff_whitespaces = <<Roy's height\r > Sam\t's height 1111\t\t & 0000\v\v = \f0000 " heredoc\ndouble quoted string. with\vdifferent\fwhite\vspaces" EOT; // heredoc with numeric values $numeric_string = <<11 < 12. 123 string 4567 "string" 1111\t & 0000\t = 0000\n; EOT; // heredoc with quote chars & slash $quote_char_string = <<< This's a string with quotes: "strings in double quote" & 'strings in single quote' " this\line is 'single quoted' /with\slashes EOT; $res_heredoc_strings = array( //heredoc strings $empty_string, $blank_line, $multiline_string, $diff_whitespaces, $numeric_string, $quote_char_string ); // loop through $res_heredoc_strings array and check the working on htmlspecialchars_decode() $count = 1; for($index =0; $index < count($res_heredoc_strings); $index ++) { echo "-- Iteration $count --\n"; var_dump( htmlspecialchars_decode($res_heredoc_strings[$index]) ); $count++; } echo "Done\n"; ?> --EXPECTF-- *** Testing htmlspecialchars_decode() : usage variations *** -- Iteration 1 -- string(0) "" -- Iteration 2 -- string(0) "" -- Iteration 3 -- string(103) "Roy's height > Sam's height 13 < 25 1111 & 0000 = 0000 "This is a double quoted string"" -- Iteration 4 -- string(130) "Roy's height > Sam 's height 1111 & 0000 = 0000 " heredoc double quoted string. with different white spaces"" -- Iteration 5 -- string(62) "11 < 12. 123 string 4567 "string" 1111 & 0000 = 0000 ;" -- Iteration 6 -- string(153) "< This's a string with quotes: "strings in double quote" & 'strings in single quote' " this\line is 'single quoted' /with\slashes " Done