3v4l.org

run code in 300+ PHP versions simultaneously
<?php $patternsArray = array(); $matchesArray = array(); $text = " Cassie, slipped on some glass and cut her ass!<br> 'Goshdamnit! Who left this damn mess out?' she cried.<br> 'Well, SHOOT, you should be more careful!' Mary laughed.<br> 'Hello! Why don't you clean up after yourself!' Cassie screamed.<br> 'Go to HELL!' Mary yelled back.<br> Then suddenly, blood started shooting everywhere.XXX "; $patternsArray[] = '/\basss?\b/i'; $patternsArray[] = '/damn/i'; $patternsArray[] = '/\bshoots?\b/i'; $patternsArray[] = '/\bhells?\b/i'; $patternsArray[] = '/XXX/i'; $cleanText = preg_replace_callback($patternsArray, function($matches) use (&$matchesArray) { list($word) = $matches; $matchesArray[] = $word; return str_repeat("*", strlen($word)); }, $text); var_dump($cleanText); var_dump($matchesArray);
Output for git.master, git.master_jit, rfc.property-hooks
string(335) " Cassie, slipped on some glass and cut her ***!<br> 'Gosh****it! Who left this **** mess out?' she cried.<br> 'Well, *****, you should be more careful!' Mary laughed.<br> 'Hello! Why don't you clean up after yourself!' Cassie screamed.<br> 'Go to ****!' Mary yelled back.<br> Then suddenly, blood started shooting everywhere.*** " array(6) { [0]=> string(3) "ass" [1]=> string(4) "damn" [2]=> string(4) "damn" [3]=> string(5) "SHOOT" [4]=> string(4) "HELL" [5]=> string(3) "XXX" }

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