3v4l.org

run code in 300+ PHP versions simultaneously
<?php $sentence = '[html style="font-size: 18px;" dir="ltr"][div style="font-size: 18px;" dir="ltr"][p style="font-weight: bold;"]Hello,[/p][p]You have got a new message from [a href="https://www.example.com/"]Example.com[/a][br][br].You could check your message on [a href="https://www.example.com/en/manager/inbox.html"]Manager[/a][/p][p][img src="https://www.example.com/assets/images/logo-default-120x50.png" width="120px" height="80px"][div style="color: #D4192D; font-weight: bold;"]Example.com Team[/div][/p][/div][/html]'; // proceed to the replacement of all self-closing tags first $result = preg_replace('~\[ (br|hr|img)\b ([^]]*) ]~xi', '<$1$2/>', $sentence); // then replace the innermost tags until there's nothing to replace $count = 0; do { $result = preg_replace('~ \[ ( (\w+) [^]]* ) ] # opening tag ( [^[]*+ ) # content without other bracketed tags \[/ \2 ] # closing tag ~xi', '<$1>$3</$2>', $result, -1, $count); } while ($count); echo $result;
Output for git.master, git.master_jit, rfc.property-hooks
<html style="font-size: 18px;" dir="ltr"><div style="font-size: 18px;" dir="ltr"><p style="font-weight: bold;">Hello,</p><p>You have got a new message from <a href="https://www.example.com/">Example.com</a><br/><br/>.You could check your message on <a href="https://www.example.com/en/manager/inbox.html">Manager</a></p><p><img src="https://www.example.com/assets/images/logo-default-120x50.png" width="120px" height="80px"/><div style="color: #D4192D; font-weight: bold;">Example.com Team</div></p></div></html>

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