3v4l.org

run code in 300+ PHP versions simultaneously
<?php $str = '-Parameter1=1234 -Parameter2=38518 -param3 "Test \"escaped\"" -param4 10 -param5 0 -param6 "TT" -param7 "Seven" -param8 "secret" "-SuperParam9=4857?--SuperParam10=123"'; $pattern = '~--?(?<key>[^= ]+)[ =] (?| "(?<value> [^\\\\"]*+ (?s:\\\\.[^\\\\"]*)*+ )" | ([^ ?"]*) )~x'; preg_match_all ($pattern, $str, $matches); $result = array_combine($matches['key'], $matches['value']); print_r($result);
Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
Array ( [Parameter1] => 1234 [Parameter2] => 38518 [param3] => Test \"escaped\" [param4] => 10 [param5] => 0 [param6] => TT [param7] => Seven [param8] => secret [SuperParam9] => 4857 [SuperParam10] => 123 )

preferences:
107.1 ms | 1635 KiB | 4 Q