Maison >développement back-end >tutoriel php >Comment exploser de manière fiable une chaîne PHP par des caractères de nouvelle ligne ?

Comment exploser de manière fiable une chaîne PHP par des caractères de nouvelle ligne ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-02 12:15:10669parcourir

How to Reliably Explode a PHP String by New Line Characters?

Explorer la chaîne PHP par une nouvelle ligne

En PHP, la fonction éclater() est utilisée pour diviser une chaîne en un tableau basé sur un délimiteur spécifié. Cependant, lorsqu'il s'agit de chaînes contenant des caractères de nouvelle ligne, l'utilisation du simple délimiteur "n" peut ne pas toujours fonctionner comme prévu.

Votre code $skuList = éclater('nr', $_POST['skuList']) ; ne fonctionne pas car il utilise le délimiteur "nr", qui représente à la fois les caractères de nouvelle ligne Windows et Mac. Cependant, sur des systèmes comme Linux ou Unix, seul « n » est utilisé.

Meilleure pratique :

La meilleure pratique pour exploser des chaînes par de nouvelles lignes consiste à utiliser le Constante PHP PHP_EOL. Cette constante représente le caractère de fin de ligne du système actuel, garantissant que le code est indépendant du système.

$skuList = explode(PHP_EOL, $_POST['skuList']);

Avertissement :

Bien que l'utilisation de PHP_EOL favorise l'indépendance du système, prudence doit être exercé lors du déplacement de données entre des systèmes. La valeur de la constante peut différer d'un système à l'autre, ce qui peut entraîner des inexactitudes dans les données. Par conséquent, il est conseillé d'analyser minutieusement les données avant de les stocker afin de supprimer tout élément dépendant du système.

MISE À JOUR :

Cependant, dans ce cas précis, comme l'a souligné @Andreas, cette solution peut ne pas convenir car les caractères de nouvelle ligne dans $_POST['skuList'] proviennent du navigateur et non du serveur. Par conséquent, une solution plus appropriée est recommandée par @Alin_Purcaru :

$skuList = preg_split('/\r\n|\r|\n/', $_POST['skuList']);

Cette expression régulière divise la chaîne en fonction de l'une des séquences de caractères de nouvelle ligne courantes utilisées par différents systèmes d'exploitation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn