#25927 [Bgs]: get_html_translation_table calls the ' ' instead of '

From: Date: Tue, 21 Oct 2003 01:51:42 +0000
Subject: #25927 [Bgs]: get_html_translation_table calls the ' ' instead of '
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-49258@lists.php.net to get a copy of this message
ID: 25927 Updated by: moriyoshi@php.net Reported By: acm at tweakers dot net Status: Bogus Bug Type: Unknown/Other Function Operating System: Linux PHP Version: 4.3.3 New Comment: Not quite. When you have to write your own html_entity_decode(), you should cope with any forms of the numeric entity including hexadecimal style. It's not as simple as the snippet in the manual page. Previous Comments: ------------------------------------------------------------------------ [2003-10-20 19:04:17] acm at tweakers dot net Well, it's cute that both are valid, but that's not the point... get_html_translation_table is supposed to return "how php's functions translate it", not "any way which is valid". And in that way, it _fails_ to do so. Since the function html_entity_decode is only available as of php-4.3.0, anyone who has a similar function (based on the php-example on the documentpage!), finds it broken because of this. In that sense it is, imho, a bug. Quoting you're own documentation: "get_html_translation_table -- Returns the translation table used by htmlspecialchars() and htmlentities()" ------------------------------------------------------------------------ [2003-10-20 18:55:32] iliaa@php.net Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php Both &#39; and &#039; are valid. ------------------------------------------------------------------------ [2003-10-20 18:35:41] kees at tweakers dot net We've fixed it be commenting line 421 of ext/standard/html.c: 420- { '\'', "&#039;", 6, ENT_HTML_QUOTE_SINGLE }, 421:/* { '\'', "&#39;", 5, ENT_HTML_QUOTE_SINGLE }, */ ------------------------------------------------------------------------ [2003-10-20 17:53:29] acm at tweakers dot net Description: ------------ When you call get_html_translation_table, with the ENT_QUOTES parameter, it'll return &#39; for ' The code for ' should, of course, be &#039; This was not broken in 4.3.1, so is newly introduced in either 4.3.2 or 4.3.3 One wonders how this could occur, since both htmlspecialchars/htmlentities and html_entity_decode work correctly. Reproduce code: --------------- <? print_r(get_html_translation_table(HTML_SPECIALCHARS,ENT_QUOTES)); ?> Expected result: ---------------- Array ( [&] => &amp; ["] => &quot; ['] => &#039; [<] => &lt; [>] => &gt; ) Actual result: -------------- Array ( [&] => &amp; ["] => &quot; ['] => &#39; [<] => &lt; [>] => &gt; ) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=25927&edit=1

« previous php.bugs (#49258) next »