3v4l.org

run code in 300+ PHP versions simultaneously
<?php $html = <<<HTML <div id="wrapper"> <script id="tmpl-wp-bulk-updates-admin-notice" type="text/html"> <div id="{{ data.id }}" class="{{ data.className }} notice <# if ( data.errors ) { #>notice-error<# } else { #>notice-success<# } #>"> <p> <# if ( data.successes ) { #> <# if ( 1 === data.successes ) { #> <# if ( 'plugin' === data.type ) { #> {{ data.successes }} плагин успешно обновлён. <# } else { #> {{ data.successes }} тема успешно обновлена. <# } #> <# } else { #> <# if ( 'plugin' === data.type ) { #> Плагины ({{ data.successes }}) успешно обновлены. <# } else { #> Темы ({{ data.successes }}) успешно обновлены. <# } #> <# } #> <# } #> <# if ( data.errors ) { #> <button class="button-link bulk-action-errors-collapsed" aria-expanded="false"> <# if ( 1 === data.errors ) { #> {{ data.errors }} обновление не удалось. <# } else { #> Обновления ({{ data.errors }}) не удались. <# } #> <span class="screen-reader-text">Показать больше деталей</span> <span class="toggle-indicator" aria-hidden="true"></span> </button> <# } #> </p> <# if ( data.errors ) { #> <ul class="bulk-action-errors hidden"> <# _.each( data.errorMessages, function( errorMessage ) { #> <li>{{ errorMessage }}</li> <# } ); #> </ul> <# } #> </div> </script> </div><!--wrapper--> HTML; $html = mb_convert_encoding( $html, 'HTML-ENTITIES', 'UTF-8' ); $dom = new \DOMDocument; libxml_use_internal_errors( true ); $dom->loadHTML( $html, LIBXML_HTML_NODEFDTD | LIBXML_HTML_NOIMPLIED ); libxml_clear_errors(); $output = $dom->saveHTML(); var_dump( $output ); //
Output for 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
Deprecated: mb_convert_encoding(): Handling HTML entities via mbstring is deprecated; use htmlspecialchars, htmlentities, or mb_encode_numericentity/mb_decode_numericentity instead in /in/k8TSZ on line 41 string(2425) "<div id="wrapper"> <script id="tmpl-wp-bulk-updates-admin-notice" type="text/html"> <div id="{{ data.id }}" class="{{ data.className }} notice <# if ( data.errors ) { #>notice-error<# } else { #>notice-success<# } #>"> <p> <# if ( data.successes ) { #> <# if ( 1 === data.successes ) { #> <# if ( 'plugin' === data.type ) { #> {{ data.successes }} &#1087;&#1083;&#1072;&#1075;&#1080;&#1085; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1086;&#1073;&#1085;&#1086;&#1074;&#1083;&#1105;&#1085;. <# } else { #> {{ data.successes }} &#1090;&#1077;&#1084;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1086;&#1073;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1072;. <# } #> <# } else { #> <# if ( 'plugin' === data.type ) { #> &#1055;&#1083;&#1072;&#1075;&#1080;&#1085;&#1099; ({{ data.successes }}) &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1086;&#1073;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1099;. <# } else { #> &#1058;&#1077;&#1084;&#1099; ({{ data.successes }}) &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1086;&#1073;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1099;. <# } #> <# } #> <# } #> <# if ( data.errors ) { #> <button class="button-link bulk-action-errors-collapsed" aria-expanded="false"> <# if ( 1 === data.errors ) { #> {{ data.errors }} &#1086;&#1073;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1085;&#1077; &#1091;&#1076;&#1072;&#1083;&#1086;&#1089;&#1100;. <# } else { #> &#1054;&#1073;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1080;&#1103; ({{ data.errors }}) &#1085;&#1077; &#1091;&#1076;&#1072;&#1083;&#1080;&#1089;&#1100;. <# } #> <span class="screen-reader-text">&#1055;&#1086;&#1082;&#1072;&#1079;&#1072;&#1090;&#1100; &#1073;&#1086;&#1083;&#1100;&#1096;&#1077; &#1076;&#1077;&#1090;&#1072;&#1083;&#1077;&#1081; <span class="toggle-indicator" aria-hidden="true"> <# } #> <# if ( data.errors ) { #> <ul class="bulk-action-errors hidden"> <# _.each( data.errorMessages, function( errorMessage ) { #> <li>{{ errorMessage }} <# } ); #> <# } #> </script></div><!--wrapper--> "
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 Deprecated: mb_convert_encoding(): Handling HTML entities via mbstring is deprecated; use htmlspecialchars, htmlentities, or mb_encode_numericentity/mb_decode_numericentity instead in /in/k8TSZ on line 41 string(2425) "<div id="wrapper"> <script id="tmpl-wp-bulk-updates-admin-notice" type="text/html"> <div id="{{ data.id }}" class="{{ data.className }} notice <# if ( data.errors ) { #>notice-error<# } else { #>notice-success<# } #>"> <p> <# if ( data.successes ) { #> <# if ( 1 === data.successes ) { #> <# if ( 'plugin' === data.type ) { #> {{ data.successes }} &#1087;&#1083;&#1072;&#1075;&#1080;&#1085; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1086;&#1073;&#1085;&#1086;&#1074;&#1083;&#1105;&#1085;. <# } else { #> {{ data.successes }} &#1090;&#1077;&#1084;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1086;&#1073;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1072;. <# } #> <# } else { #> <# if ( 'plugin' === data.type ) { #> &#1055;&#1083;&#1072;&#1075;&#1080;&#1085;&#1099; ({{ data.successes }}) &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1086;&#1073;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1099;. <# } else { #> &#1058;&#1077;&#1084;&#1099; ({{ data.successes }}) &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1086;&#1073;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1099;. <# } #> <# } #> <# } #> <# if ( data.errors ) { #> <button class="button-link bulk-action-errors-collapsed" aria-expanded="false"> <# if ( 1 === data.errors ) { #> {{ data.errors }} &#1086;&#1073;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1085;&#1077; &#1091;&#1076;&#1072;&#1083;&#1086;&#1089;&#1100;. <# } else { #> &#1054;&#1073;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1080;&#1103; ({{ data.errors }}) &#1085;&#1077; &#1091;&#1076;&#1072;&#1083;&#1080;&#1089;&#1100;. <# } #> <span class="screen-reader-text">&#1055;&#1086;&#1082;&#1072;&#1079;&#1072;&#1090;&#1100; &#1073;&#1086;&#1083;&#1100;&#1096;&#1077; &#1076;&#1077;&#1090;&#1072;&#1083;&#1077;&#1081; <span class="toggle-indicator" aria-hidden="true"> <# } #> <# if ( data.errors ) { #> <ul class="bulk-action-errors hidden"> <# _.each( data.errorMessages, function( errorMessage ) { #> <li>{{ errorMessage }} <# } ); #> <# } #> </script></div><!--wrapper--> "
Output for 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28
string(2425) "<div id="wrapper"> <script id="tmpl-wp-bulk-updates-admin-notice" type="text/html"> <div id="{{ data.id }}" class="{{ data.className }} notice <# if ( data.errors ) { #>notice-error<# } else { #>notice-success<# } #>"> <p> <# if ( data.successes ) { #> <# if ( 1 === data.successes ) { #> <# if ( 'plugin' === data.type ) { #> {{ data.successes }} &#1087;&#1083;&#1072;&#1075;&#1080;&#1085; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1086;&#1073;&#1085;&#1086;&#1074;&#1083;&#1105;&#1085;. <# } else { #> {{ data.successes }} &#1090;&#1077;&#1084;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1086;&#1073;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1072;. <# } #> <# } else { #> <# if ( 'plugin' === data.type ) { #> &#1055;&#1083;&#1072;&#1075;&#1080;&#1085;&#1099; ({{ data.successes }}) &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1086;&#1073;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1099;. <# } else { #> &#1058;&#1077;&#1084;&#1099; ({{ data.successes }}) &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1086;&#1073;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1099;. <# } #> <# } #> <# } #> <# if ( data.errors ) { #> <button class="button-link bulk-action-errors-collapsed" aria-expanded="false"> <# if ( 1 === data.errors ) { #> {{ data.errors }} &#1086;&#1073;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1085;&#1077; &#1091;&#1076;&#1072;&#1083;&#1086;&#1089;&#1100;. <# } else { #> &#1054;&#1073;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1080;&#1103; ({{ data.errors }}) &#1085;&#1077; &#1091;&#1076;&#1072;&#1083;&#1080;&#1089;&#1100;. <# } #> <span class="screen-reader-text">&#1055;&#1086;&#1082;&#1072;&#1079;&#1072;&#1090;&#1100; &#1073;&#1086;&#1083;&#1100;&#1096;&#1077; &#1076;&#1077;&#1090;&#1072;&#1083;&#1077;&#1081; <span class="toggle-indicator" aria-hidden="true"> <# } #> <# if ( data.errors ) { #> <ul class="bulk-action-errors hidden"> <# _.each( data.errorMessages, function( errorMessage ) { #> <li>{{ errorMessage }} <# } ); #> <# } #> </script></div><!--wrapper--> "

preferences:
168.38 ms | 410 KiB | 154 Q