3v4l.org

run code in 300+ PHP versions simultaneously
<?php $original_string = '<p>some text&nbsp;<img src="data:image/png;base64,randomIMGData" data-filename="file1.png" style="width: 120px;"><img src="data:image/jpeg;base64,moreIMGData" data-filename="file2.jpg" style="width: 120px;"><p>Some other text<p><img alt="Regular image" src="http://example.com/"><img src="data:image/png;base64,invalidElement" style="width: 120px;"></p>'; $doc = new DOMDocument(); // Treat the string as a frament and do not add a DOCTYPE or mandatory tags $doc->loadHTML($original_string, LIBXML_HTML_NODEFDTD | LIBXML_HTML_NOIMPLIED); // Get all images $imgs = $doc->getElementsByTagName('img'); $id_noveho_clanku = 'testdir'; foreach ($imgs as $img) { $src = $img->getAttribute('src'); $name = $img->getAttribute('data-filename'); // Check if it contains base64 data and a filename if (false !== strpos($src, 'data:image') && "" !== $img->getAttribute('data-filename')) { $data = substr($src, strpos($src, ',') + 1); // Data start $img->setAttribute('src', str_replace($data, '', $src)); // Remove data $name = substr($name, 0, strrpos($name, '.')); // Save the image to disk $path = "../img/clanky/${id_noveho_clanku}/${name}.txt"; // file_put_contents ($path, $data); echo "Saving image data: '${data}' to ${path}\n"; } } // Get the HTML with the data removed $parsed = $doc->saveHTML($doc); echo $parsed;
Output for git.master, git.master_jit, rfc.property-hooks
Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /in/CXKkH on line 24 Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /in/CXKkH on line 24 Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /in/CXKkH on line 26 Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /in/CXKkH on line 26 Saving image data: 'randomIMGData' to ../img/clanky/testdir/file1.txt Saving image data: 'moreIMGData' to ../img/clanky/testdir/file2.txt <p>some text <img src="data:image/png;base64," data-filename="file1.png" style="width: 120px;"><img src="data:image/jpeg;base64," data-filename="file2.jpg" style="width: 120px;"><p>Some other text</p><p><img alt="Regular image" src="http://example.com/"><img src="data:image/png;base64,invalidElement" style="width: 120px;"></p></p>

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:
177.44 ms | 407 KiB | 5 Q