Originariamente inviato da gianiaz
al momento non ho avuto modo di testarla approfonditamente, l'esempio che mi hai postato mi č sembrato che non avesse problemi...
ecco il risultato del secondo script:

codice:
Array
(
    [0] => ciao
    [1] => prova
    [2] => prova, con spazi
    [3] =>  prot, e 
    [4] => seconda prova, con spazi
    [5] => prot
)
in realtā il quarto elemento č sbagliato perche lo considera come tra virgolette, e al momento non riesco a sistemare la regexp quindi ho aggiustato cosė, aggiungendo un ciclo for:

codice:
preg_match_all('/"(.*?)"|(\b\w+\b)/s',$t,$mth);
for($i=0,$c=count($mth[0]);$i<$c;$i++)
$match[]=($mth[1][$i]!='')?$mth[1][$i]:$mth[2][$i];
print_r($match);