296 votes

Exploser la chaîne PHP par une nouvelle ligne

Simple, non? Eh bien, cela ne fonctionne pas: - \

 $skuList = explode('\n\r', $_POST['skuList']);
 

284voto

Alin Purcaru Points 21373

Couvrir tous les cas. Ne vous fiez pas que votre entrée provient d’un environnement Windows.

ou

155voto

Select0r Points 5828

Essayez (double guillemets) ou tout simplement .

Si vous ne savez pas quel type d’EOL vous avez, exécuter un str_replace avant votre explode, remplaçant « \n\r » par « \n ».

15voto

Spudley Points 85371

Beaucoup de choses ici:

  • Vous devez utiliser des guillemets, pas de guillemets simples, sinon, les caractères d'échappement ne sera pas échappé.
  • La séquence normale est - \r\n, pas \n\r.
  • Selon la source, vous pouvez juste être prise en \n sans \r (ou même dans de rares cas, peut-être juste l' \r)

Le dernier point, vous trouverez peut - preg_split() à l'aide de toutes les variantes possibles vous donnera un moyen plus fiable de fractionner les données qu' explode(). Mais alternativement, vous pouvez utiliser explode() avec seulement \n, et ensuite utiliser trim() de supprimer tout \r caractères qui sont laissées en suspens autour de.

13voto

iman Points 587

Cette fonction php exploser chaîne de saut de ligne

Attention : nouvelle ligne dans Windows est \r\n et sous Linux et Unix est \n
ce changement de fonction toutes les nouvelles lignes en mode linux puis diviser.
faire attention que les lignes vides sont ignorés

exemple de

sortie

11voto

Oberdan Points 69

Essayez

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X