3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php $js = "Morris.Donut({ element: 'piechart', data: [ {label: 'Option 1', value: $\{op1}\$ }, {label: 'Option 2', value: \${op2}\$ }, {label: 'Option 3', value: \${op3}\$ }, {label: 'Option 4', value: \${op4}\$ } ], colors: [\"#3228db\", \"#34225e\", \"#1abc3c\", \"#24495e\", \"#9b51b6\", \"#15a5a6\"], formatter: function (y) { return y + \"%\" } });"; //$op1 = 25; //$op2 = 40; //$op3 = 25; //$op4 = 10; $matches = array(); $vars = array(); $i=0; echo preg_replace("/$\{([^\}]*)\}$/", "here", $js); while(preg_match("/$\{([^\}]*)\}$/", $js, $matches)){ echo $i; print_r($matches); $vars[$i++] = $matches[1]; } print_r($vars);
Output for 5.1.0 - 7.1.0
Morris.Donut({ element: 'piechart', data: [ {label: 'Option 1', value: $\{op1}$ }, {label: 'Option 2', value: ${op2}$ }, {label: 'Option 3', value: ${op3}$ }, {label: 'Option 4', value: ${op4}$ } ], colors: ["#3228db", "#34225e", "#1abc3c", "#24495e", "#9b51b6", "#15a5a6"], formatter: function (y) { return y + "%" } });Array ( )
Output for 4.3.0 - 5.0.5
Morris.Donut({ element: 'piechart', data: [ {label: 'Option 1', value: ${op1}$ }, {label: 'Option 2', value: ${op2}$ }, {label: 'Option 3', value: ${op3}$ }, {label: 'Option 4', value: ${op4}$ } ], colors: ["#3228db", "#34225e", "#1abc3c", "#24495e", "#9b51b6", "#15a5a6"], formatter: function (y) { return y + "%" } });Array ( )