SPÉCIFIQUEMENT pour la chaîne d'exemple de l'OP, car chaque sous-chaîne à mettre en correspondance est un seul mot, vous pouvez utiliser str_word_count () .
Code: ( Démo )
$str = ' red, green, blue ,orange ';
var_export(str_word_count($str,1)); // 1 means return all words in an indexed array
Production:
array (
0 => 'red',
1 => 'green',
2 => 'blue',
3 => 'orange',
)
Cela peut également être adapté pour les sous-chaînes au-delà des lettres (et certains tirets et apostrophes - si vous lisez les petits caractères) en ajoutant les caractères nécessaires au masque de caractère / 3e paramètre.
Code: ( Démo )
$str = " , Number1 , 234, 0 ,4heaven's-sake , ";
var_export(str_word_count($str,1,'0..9'));
Production:
array (
0 => 'Number1',
1 => '234',
2 => '0',
3 => '4heaven\'s-sake',
)
Encore une fois, je traite cette question très étroitement en raison de la chaîne d'exemple, mais cela fournira le même résultat souhaité:
Code: ( Démo )
$str = ' red, green, blue ,orange ';
var_export(preg_match_all('/[^, ]+/',$str,$out)?$out[0]:'fail');