3v4l.org

run code in 300+ PHP versions simultaneously
<?php ini_set("error_reporting", -1 & ~E_DEPRECATED); set_error_handler(function($s, $m, $f, $l, $c = null) { print "PHP Warning: $m in " . basename($f) . " on line $l"; }, E_WARNING); $xml = base64_decode("PGRpdj48cD7M4OzgIOz76+Ag8ODs8y48L3A+PC9kaXY+"); $options = LIBXML_HTML_NOIMPLIED | LIBXML_NOENT | LIBXML_NONET | LIBXML_NOWARNING | LIBXML_NOXMLDECL | LIBXML_HTML_NODEFDTD ; print "<pre>"; foreach([ 'default_charset', 'input_encoding', 'internal_encoding', 'output_encoding', 'iconv.input_encoding', 'iconv.internal_encoding', 'iconv.output_encoding', 'mbstring.http_input', 'mbstring.http_output', 'mbstring.internal_encoding', ] as $set) { ini_set($set, "UTF-8"); printf("%-12s: %s\n", $set, ini_get($set)); } print "</pre>"; ob_start(function($str, $phase) { return iconv("Windows-1251", "UTF-8", $str); }); print "--- CP1251 ---\n$xml\n"; print "Direct:"; $doc = new DOMDocument; $doc->loadHTML("$xml", $options); $doc->encoding = "Windows-1251"; print $doc->saveXML(null, LIBXML_NOENT); print "With encoding:"; $doc = new DOMDocument("1.0", "Windows-1251"); $doc->loadHTML("$xml", $options); $doc->encoding = "Windows-1251"; print $doc->saveXML(null, LIBXML_NOENT); print "With inline encoding:"; $doc = new DOMDocument; $doc->loadHTML("<?xml version=\"1.0\" encoding=\"Windows-1251\" standalone=\"yes\"?>$xml", $options); $doc->encoding = "Windows-1251"; print $doc->saveXML(null, LIBXML_NOENT); print "With both:"; $doc = new DOMDocument("1.0", "Windows-1251"); $doc->loadHTML("<?xml version=\"1.0\" encoding=\"Windows-1251\" standalone=\"yes\"?>$xml", $options); $doc->encoding = "Windows-1251"; print $doc->saveXML(null, LIBXML_NOENT); ob_end_flush(); $xml = iconv("Windows-1251", "UTF-8", $xml); print "--- UTF-8 ---\n$xml\n"; print "Direct:\n"; $doc = new DOMDocument; $doc->loadHTML("$xml", $options); $doc->encoding = "UTF-8"; print $doc->saveXML(null, LIBXML_NOENT); print "With encoding:\n"; $doc = new DOMDocument("1.0", "UTF-8"); $doc->loadHTML("$xml", $options); $doc->encoding = "UTF-8"; print $doc->saveXML(null, LIBXML_NOENT); print "With inline encoding:"; $doc = new DOMDocument; $doc->loadHTML("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>$xml", $options); $doc->encoding = "UTF-8"; print $doc->saveXML(null, LIBXML_NOENT); print "With both:"; $doc = new DOMDocument("1.0", "UTF-8"); $doc->loadHTML("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>$xml", $options); $doc->encoding = "UTF-8"; print $doc->saveXML(null, LIBXML_NOENT);
Output for git.master, git.master_jit, rfc.property-hooks
<pre>default_charset: UTF-8 input_encoding: UTF-8 internal_encoding: UTF-8 output_encoding: UTF-8 iconv.input_encoding: UTF-8 iconv.internal_encoding: UTF-8 iconv.output_encoding: UTF-8 mbstring.http_input: UTF-8 mbstring.http_output: UTF-8 mbstring.internal_encoding: UTF-8 </pre>--- CP1251 --- <div><p>���� ��� ����.</p></div> Direct:<?xml version="1.0" encoding="Windows-1251" standalone="yes"?> <div><p>&#224;&#224; &#251;&#224; &#224;&#243;.</p></div> With encoding:<?xml version="1.0" encoding="Windows-1251" standalone="yes"?> <div><p>&#224;&#224; &#251;&#224; &#224;&#243;.</p></div> With inline encoding:PHP Warning: DOMDocument::loadHTML(): Input is not proper UTF-8, indicate encoding ! in Entity, line: 1 in HL5It on line 56PHP Warning: DOMDocument::saveXML(): output conversion failed due to conv error, bytes 0x00 0x3F 0x78 0x6D in HL5It on line 58<?xml version="1.0" encoding="Windows-1251" standalone="yes"?> <?xml version="1.0" encoding="Windows-1251" standalone="yes"??> <div><p>With both:PHP Warning: DOMDocument::loadHTML(): encoder errorInput is not proper UTF-8, indicate encoding ! in Entity, line: 1 in HL5It on line 62PHP Warning: DOMDocument::saveXML(): output conversion failed due to conv error, bytes 0x00 0x3F 0x78 0x6D in HL5It on line 64<?xml version="1.0" encoding="Windows-1251" standalone="yes"?> <?xml version="1.0" encoding="Windows-1251" standalone="yes"??> <div><p>PHP Warning: iconv(): Wrong encoding, conversion from "Windows-1251" to "UTF-8" is not allowed in HL5It on line 37PHP Warning: iconv(): Wrong encoding, conversion from "Windows-1251" to "UTF-8" is not allowed in HL5It on line 68--- UTF-8 --- Direct: Fatal error: Uncaught ValueError: DOMDocument::loadHTML(): Argument #1 ($source) must not be empty in /in/HL5It:73 Stack trace: #0 /in/HL5It(73): DOMDocument->loadHTML('', 10310) #1 {main} thrown in /in/HL5It on line 73
Process exited with code 255.

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
50.93 ms | 403 KiB | 8 Q