- var_dump: documentation ( source)
- preg_replace_callback: documentation ( source)
- explode: documentation ( source)
- array_filter: documentation ( source)
<?php
function parseQuery($query, &$parameters)
{
$query = preg_replace_callback('/(?J)(?<k>\w+):(?:(?<v>\w+)|"(?<v>[^"]+?)")/', function ($match) use (&$parameters) {
$parameters[$match['k']] = $match['v'];
}, $query);
return array_filter(explode(' ', $query));
}
var_dump(parseQuery('hello world user:12345 foo said:"go eat a phallus" bar', $parameters), $parameters);