3v4l.org

run code in 300+ PHP versions simultaneously
<?php $keywords = [ 'keywords' => 'www.1.com', 'hello' => 'www.2.com', 'there' => 'www.3.com', 'are' => 'www.4.com', ]; $sentence = ' <div> <h1>Hello</h1> <h2>Hello there blablabla</h2> <p>Hello, there are keywords</p> <p>Hello, there are keywords</p> <p>Hello, there are keywords</p> <p>Hello, there are keywords</p> <p>Hello, there are keywords</p> </div>'; $dom = new DOMDocument; $dom->loadHTML($sentence, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); foreach ($dom->getElementsByTagName('p') as $p) { $p->nodeValue = preg_replace_callback( '~\b(?:' . implode('|', array_keys($keywords)) . ')\b~i', function($m) use ($keywords) { return $keywords[strtolower($m[0])]; }, $p->nodeValue ); } echo $dom->saveHTML();
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.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.28, 8.4.1 - 8.4.14, 8.4.16, 8.5.0 - 8.5.1
<div> <h1>Hello</h1> <h2>Hello there blablabla</h2> <p>www.2.com, www.3.com www.4.com www.1.com</p> <p>www.2.com, www.3.com www.4.com www.1.com</p> <p>www.2.com, www.3.com www.4.com www.1.com</p> <p>www.2.com, www.3.com www.4.com www.1.com</p> <p>www.2.com, www.3.com www.4.com www.1.com</p> </div>
Output for 8.4.15
/bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.35' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15)
Process exited with code 1.

preferences:
198.51 ms | 407 KiB | 5 Q