2013-07-04 2 views
1

chaîne ayant comme ceci:PHP obtenir des valeurs séparées par des virgules qui ne sont pas enfermés

5, "hi all, this is a comma", 'text without comma', 5,'a',',',"," 

je veux briser la chaîne en un tableau, mais il y a des valeurs qui contiennent des virgules (entre guillemets simples ou doubles)

ce qui est le plus rapide possible regex (exploser ne fonctionnera pas ici)

je pourrais utiliser str_getcsv mais les chaînes sont entourées parfois par des guillemets simples, d'autres fois par des guillemets doubles! besoin de quelque chose plus intelligent

+1

de sorte que son fichier csv? –

+1

Est-ce que ça vient d'un fichier? Ensuite, utilisez 'fgetcsv()' – Barmar

+0

Non, c'est une entrée utilisateur/socket reciv –

Répondre

3

Vous pouvez utiliser un analyseur csv ou preg_split avec ce modèle:

$pattern = '~(?:\'[^\']*\'|"[^"]*"|)\K(,|$)~'; 
+0

Génial! Merci –

Questions connexes