3v4l.org

run code in 300+ PHP versions simultaneously
<?php $str = "don&#39;t-break-me-über"; print htmlspecialchars_decode($str, ENT_QUOTES) . PHP_EOL; print html_entity_decode($str, ENT_QUOTES) . PHP_EOL; print html_entity_decode($str, ENT_QUOTES, 'ISO-8859-1') . PHP_EOL; print html_entity_decode($str, ENT_QUOTES | ENT_XML1, 'ISO-8859-1') . PHP_EOL; print html_entity_decode($str, ENT_QUOTES, 'UTF-8') . PHP_EOL; // Decode ALL entities (double quotes (&#34;), // single quotes (&#39; + &apos;) and non printable chars (e.g. &#13;)) print html_entity_decode($str, ENT_QUOTES | ENT_XML1, 'UTF-8') . PHP_EOL; // Convert &#[0-9]+ entities to UTF-8 $new = preg_replace_callback("/(&#[0-9]+;)/", function($m) { return mb_convert_encoding($m[1], "UTF-8", "HTML-ENTITIES"); }, $str); print $new . PHP_EOL; // Convert &#[0-9]+ entities to ISO-8859-1 $new2 = preg_replace_callback("/(&#[0-9]+;)/", function($m) { return mb_convert_encoding($m[1], "ISO-8859-1", "HTML-ENTITIES"); }, $str); print $new2 . PHP_EOL;
Output for 7.0.0 - 7.0.20, 7.1.0 - 7.1.25, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
don't-break-me-über don't-break-me-über don't-break-me-über don't-break-me-über don't-break-me-über don't-break-me-über don't-break-me-über don't-break-me-über
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 don't-break-me-über don't-break-me-über don't-break-me-über don't-break-me-über don't-break-me-über don't-break-me-über don't-break-me-über don't-break-me-über

preferences:
168.46 ms | 402 KiB | 181 Q