Каждый параметр может быть строкой в кавычках или числом.
Сделал вот так:
$params = "'hello, world', \"how \"are \'u\'\", 6";
preg_match_all('/(?:(?:(?:[\'](.*?[^\\\])[\']))|(?:(?:[\"](.*?[^\\\])[\"]))|(\d+))(?:,|$)/', $params, $params);
echo '<pre>'.print_r($params, true).'</pre>';
Но выглядит страшненько + возвращает не очень приятный массив:
результат
Array
(
[0] => Array
(
[0] => 'hello, world',
[1] => "how "are \'u\'",
[2] => 6
)
[1] => Array
(
[0] => hello, world
[1] =>
[2] =>
)
[2] => Array
(
[0] =>
[1] => how "are \'u\'
[2] =>
)
[3] => Array
(
[0] =>
[1] =>
[2] => 6
)
)
Хотелось бы что-то типа
Array
(
[0] => Array
(
[0] => 'hello, world',
[1] => "how "are \'u\'",
[2] => 6
)
[1] => Array
(
[0] => hello, world
)
[2] => Array
(
[0] => how "are \'u\'
)
[3] => Array
(
[0] => 6
)
)
или лучше даже так:
Array
(
[0] => Array
(
[0] => hello, world
[1] => how "are \'u\'
[2] => 6
)
)