3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php $sentence = '{Please|Just} make this {cool|awesome|random} test sentence {rotate {quickly|fast} and random|spin and be random}'; function sentence_spinning($str) { $new_str = preg_replace_callback('#\{([^{}]*)\}#im', function($matches) { $rand = array_rand($split = explode('|', $matches[1])); return $split[$rand]; }, $str); return ($new_str !== $str) ? sentence_spinning($new_str) : $str; if ($new_str !== $str) $str = sentence_spinning($new_str); return $str; } echo sentence_spinning($sentence);
Output for 5.3.19, 5.4.24, 5.4.36, 5.5.20, 5.6.7, 7.1.0
Please make this cool test sentence rotate fast and random
Output for 5.3.3, 5.3.13, 5.3.16, 5.3.25, 5.4.31, 5.5.10, 5.5.18, 5.6.1, 7.0.7, 7.0.14
Please make this cool test sentence rotate quickly and random
Output for 5.3.1, 5.3.15, 5.4.10, 5.4.14, 5.4.28 - 5.4.29, 5.4.34, 5.4.38, 5.4.42, 5.4.45, 5.5.3 - 5.5.5, 5.5.19, 5.5.33, 5.6.25, 7.0.0, 7.0.10
Just make this random test sentence spin and be random
Output for 5.5.8, 5.5.23 - 5.5.24, 5.6.5, 7.0.9
Please make this random test sentence rotate fast and random
Output for 5.3.2, 5.3.18, 5.3.21, 5.4.12, 5.5.14, 5.5.21 - 5.5.22, 5.5.28, 7.0.8
Please make this cool test sentence spin and be random
Output for 5.3.4, 5.3.20, 5.4.3, 5.4.13, 5.4.20, 5.4.32, 5.5.31, 5.6.6, 5.6.8, 5.6.14, 5.6.20, 7.0.6
Please make this random test sentence spin and be random
Output for 5.3.8 - 5.3.9, 5.4.19, 5.5.9, 7.0.5
Just make this random test sentence rotate fast and random
Output for 5.3.14, 5.3.27, 5.4.4, 5.4.27, 5.4.39, 5.5.2, 5.5.15, 5.5.29, 5.5.36, 5.6.28, 7.0.4
Just make this cool test sentence spin and be random
Output for 5.4.5, 5.4.7, 5.4.44, 5.5.34, 7.0.3
Just make this cool test sentence rotate quickly and random
Output for 5.3.0, 5.3.12, 5.4.9, 5.4.43, 5.5.0, 7.0.2
Just make this awesome test sentence rotate fast and random
Output for 5.3.10, 5.3.28, 5.4.30, 5.5.12, 5.5.25, 5.5.37, 5.6.3, 5.6.19, 7.0.1
Please make this awesome test sentence spin and be random
Output for 5.3.6, 5.3.24, 5.3.26, 5.3.29, 5.4.2, 5.4.6, 5.4.17, 5.4.25, 5.5.1, 5.5.16, 5.6.9, 5.6.12, 5.6.16, 5.6.18, 5.6.24, hhvm-3.12.0
Just make this awesome test sentence spin and be random
Output for 5.5.6, 5.5.26, 5.5.35, 5.6.17, hhvm-3.10.0
Just make this cool test sentence rotate fast and random
Output for 5.3.11, 5.3.22, 5.4.0 - 5.4.1, 5.4.26, 5.4.35, 5.6.2, 5.6.4, 5.6.15, 5.6.21, 5.6.23
Please make this awesome test sentence rotate quickly and random
Output for 5.4.15, 5.4.37, 5.6.22
Just make this awesome test sentence rotate quickly and random
Output for 5.3.5, 5.3.17, 5.4.21 - 5.4.23, 5.5.7, 5.5.32, 5.6.0, 5.6.11, 5.6.13
Please make this random test sentence rotate quickly and random
Output for 5.3.7, 5.4.8, 5.4.11, 5.4.16, 5.5.11, 5.5.13, 5.5.27, 5.5.30, 5.6.10
Just make this random test sentence rotate quickly and random
Output for 5.3.23, 5.4.18, 5.4.40 - 5.4.41, 5.5.38
Please make this awesome test sentence rotate fast and random
Output for 4.4.2 - 4.4.9, 5.1.0 - 5.2.17
Parse error: syntax error, unexpected T_FUNCTION in /in/LgPXq on line 7
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.4.1, 5.0.0 - 5.0.5
Parse error: parse error, unexpected T_FUNCTION in /in/LgPXq on line 7
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error in /in/LgPXq on line 7
Process exited with code 255.