html_entity_decode3.phpt [plain text]
--TEST--
html_entity_decode: Do not decode numerical entities that refer to non-SGML or otherwise disallowed chars
--FILE--
<?php
$tests = array(
"�", "",
"	",
"
",
"",
"",
"
", "",
"",
" ", "", "€", "Ÿ",
" ", "퟿", "�",
"�",
"", "", "",
"﷏", "", "",
"ﷰ", "", "",
);
echo "*** HTML 4.01 ***\n";
foreach ($tests as $t) {
$dec = html_entity_decode($t, ENT_QUOTES | ENT_HTML401, "UTF-8");
if ($t == $dec) {
echo "$t\tNOT DECODED\n";
} else {
echo "$t\tDECODED\n";
}
}
echo "\n*** XHTML 1.0 ***\n";
foreach ($tests as $t) {
$dec = html_entity_decode($t, ENT_QUOTES | ENT_XHTML, "UTF-8");
if ($t == $dec) {
echo "$t\tNOT DECODED\n";
} else {
echo "$t\tDECODED\n";
}
}
echo "\n*** HTML5 ***\n";
foreach ($tests as $t) {
$dec = html_entity_decode($t, ENT_QUOTES | ENT_HTML5, "UTF-8");
if ($t == $dec) {
echo "$t\tNOT DECODED\n";
} else {
echo "$t\tDECODED\n";
}
}
echo "\n*** XML 1.0 ***\n";
foreach ($tests as $t) {
$dec = html_entity_decode($t, ENT_QUOTES | ENT_XML1, "UTF-8");
if ($t == $dec) {
echo "$t\tNOT DECODED\n";
} else {
echo "$t\tDECODED\n";
}
}
echo "\nDone.\n";
--EXPECT--
*** HTML 4.01 ***
� NOT DECODED
 NOT DECODED
	 DECODED

 DECODED
 NOT DECODED
 NOT DECODED

 DECODED
 NOT DECODED
 NOT DECODED
  DECODED
 NOT DECODED
€ NOT DECODED
Ÿ NOT DECODED
  DECODED
퟿ DECODED
� NOT DECODED
� NOT DECODED
 DECODED
 DECODED
 DECODED
﷏ DECODED
 DECODED
 DECODED
ﷰ DECODED
 DECODED
 DECODED
*** XHTML 1.0 ***
� NOT DECODED
 NOT DECODED
	 DECODED

 DECODED
 NOT DECODED
 NOT DECODED

 DECODED
 NOT DECODED
 NOT DECODED
  DECODED
 DECODED
€ DECODED
Ÿ DECODED
  DECODED
퟿ DECODED
� NOT DECODED
� NOT DECODED
 DECODED
 NOT DECODED
 NOT DECODED
﷏ DECODED
 DECODED
 DECODED
ﷰ DECODED
 DECODED
 DECODED
*** HTML5 ***
� NOT DECODED
 NOT DECODED
	 DECODED

 DECODED
 NOT DECODED
 DECODED

 NOT DECODED
 NOT DECODED
 NOT DECODED
  DECODED
 NOT DECODED
€ NOT DECODED
Ÿ NOT DECODED
  DECODED
퟿ DECODED
� NOT DECODED
� NOT DECODED
 DECODED
 NOT DECODED
 NOT DECODED
﷏ DECODED
 NOT DECODED
 NOT DECODED
ﷰ DECODED
 NOT DECODED
 NOT DECODED
*** XML 1.0 ***
� NOT DECODED
 NOT DECODED
	 DECODED

 DECODED
 NOT DECODED
 NOT DECODED

 DECODED
 NOT DECODED
 NOT DECODED
  DECODED
 DECODED
€ DECODED
Ÿ DECODED
  DECODED
퟿ DECODED
� NOT DECODED
� NOT DECODED
 DECODED
 NOT DECODED
 NOT DECODED
﷏ DECODED
 DECODED
 DECODED
ﷰ DECODED
 DECODED
 DECODED
Done.