3v4l.org

run code in 300+ PHP versions simultaneously
<?php $bbcode = <<<BBCODE Want a list? [ul][li]Here is a video: https://www.youtube.com/watch?v=mUxt--mMjwA[/li] [li]This is a [b]tagged[/b] video: [url]https://www.youtube.com/watch?v=u6MyOXk98DI[/url][/li] [li]This is a [b]tagged & attributed[/b] video: [url=https://www.youtube.com/watch?v=8G2WzH4AKpE]Pearl Jam - Present Tense[/url][/li] [li]Look at this:https://www.example.com/example?ohyeah=sure#okay this is a raw link[/li] [li][i]No attibute[/i] bbcode url: [url]http://example.com/x1[/url][/li] [li]A url with link and link text: [url=http://example.com/x2]x2[/url][/li] [li]Image with \"ignorable" text: [IMG=https://upload.wikimedia.org/wikipedia/commons/thumb/b/be/Portrait_of_Julie_Bishop.jpg/220px-Portrait_of_Julie_Bishop.jpg]Julie Bishop[/IMG][/li] [li]Image: [img=https://docs.joomla.org/images/3/37/Joomla-3D-Vertical-logo-light-background-en.png][/img][/li] [li][quote]"I could either watch it happen or be a part of it."[/quote] - Elon Musk[/li] [li][user=2943403]mickmackusa[/user][/li] [li]Code: [code]while (\$noSuccess) { tryAgain(); if (\$dead) break; }[/code][/li] [/ul] BBCODE; $search = array ( '~\[b](.*?)\[/b]~is', '~\[i](.*?)\[/i]~is', '~\[u](.*?)\[/u]~is', '~\[ul](.*?)\[/ul]~is', '~\[li](.*?)\[/li]~is', '~\[user=(.*?)](.*?)\[/user]~i', '~\[url=https?.*?(?:[/?&](?:e|vi?|ci)(?:[/=]|%3D)|youtu\.be/|embed/|/user/[^/]+#p/(?:[^/]+/)+)([\w-]{10,12})].*?\[/url]~i', '~\[url]https?.*?(?:[/?&](?:e|vi?|ci)(?:[/=]|%3D)|youtu\.be/|embed/|/user/[^/]+#p/(?:[^/]+/)+)([\w-]{10,12}).*?\[/url]~i', '~\[url=((?:ht|f)tps?://[a-z\d.-]+\.[a-z]{2,3}/\S*?)](.*?)\[/url]~i', '~\[url]((?:ht|f)tps?://[a-z\d.-]+\.[a-z]{2,3}/\S*?)\[/url]~i', '~\[img=(.*?)].*?\[/img]~i', '~\[quote](.*?)\[/quote]~is', '~\[code](.*?)\[/code]~is', '~(?:<a.*?</a>|<img.*?</img>|<iframe.*?</iframe>)(*SKIP)(*FAIL)|(?:\bhttps?.*?(?:[/?&](?:e|vi?|ci)(?:[/=]|%3D)|youtu\.be/|embed/|/user/[^/]+#p/(?:[^/]+/)+)([\w-]{10,12}))\S*~i', '~(?:<a.*?</a>|<img.*?</img>|<iframe.*?</iframe>)(*SKIP)(*FAIL)|\bhttps?://.+?(?=\s|$)~im' ); $replace = array ( '<strong>$1</strong>', '<em>$1</em>', '<u>$1</u>', '<ul>$1</ul>', '<li>$1</li>', '<a href="../login/profile?u=$1" target="_blank">$2</a>', '<iframe width="640" height="360" src="https://www.youtube.com/embed/$1" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>', '<iframe width="640" height="360" src="https://www.youtube.com/embed/$1" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>', '<a href="$1" target="_blank">$2</a>', '<a href="$1" target="_blank">$1</a>', '<img src="$1"></img>', '<quote>$1</quote>', '<code>$1</code>', '<iframe width="640" height="360" src="https://www.youtube.com/embed/$1" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>', '<a href="$0" target="_blank">$0</a>' ); echo preg_replace($search, $replace, $bbcode);

preferences:
24.03 ms | 404 KiB | 5 Q