Swoją drogą w wyrażeniach regularnych podawać lepiej zakresy typu \\x00-\\x08 czy jeśli jest możliwość to wylistować wszystkie możliwości?
Kolejne dwie funkcje to prób naśaldownictwa htmlentities() i html_entity_decode()
Jedyny mankament, którego nie jestem pewien to format encji tj. przy podwójnym kodowaniu encji:
if ($double_encode == true) { } else { $string = preg_replace('/&(?!(((#|#X|#x)+[a-fA-F0-9]{1,4})|[a-zA-Z]{1,10}[0-9]{0,3})+;)/', '&', $string, -1); // or & }
A konkretniej w momencie kiedy ma zostawić &(ampersand) w spokoju gdy występuje jako prefix encji.
No i czy przy dekodowaniu encji wystarczy pojedyncze dekodowanie podwójnie zakodowanych encji?(tutaj na forum są chyba 3 krotnie dekodowane)