Dois-je utiliser \ r ou \ n pour exploser () uant le contenu d'un fichier en PHP?

StackOverflow https://stackoverflow.com/questions/867776

  •  22-08-2019
  •  | 
  •  

Question

Je crée une fonction qui peut accepter une chaîne qui est soit récupéré par un fichier file_get_contents() texte local, ou quelque chose tiré par les cheveux d'une url comme http://site.com/338383.txt.

Le fichier sera un fichier onglet seperated, avec chaque élément dans le fichier étant sur sa propre ligne. Est-il préférable d'utiliser ou \n pour \r la chaîne et explode() obtenir un tableau de chaque ligne?

J'ai remarqué que dans certains cas, ne fonctionne pas <=>. Je voudrais une manière cohérente qui fonctionne tout le temps. Toute pensée?

Était-ce utile?

La solution

Vous pouvez utiliser () pour obtenir le contenu de le fichier en tant que matrice avec des lignes individuelles.

Autres conseils

duckyflip rappelle, vous pouvez utiliser le fichier () fonction pour obtenir un tableau de lignes de fichiers. Toutefois, si vous avez encore besoin d'exploser (pour une raison inconnue), vous devez utiliser la constante PHP au lieu de PHP_EOL \ n "comme cela est compatible multiplateforme.

Le problème est que est défini newline différemment selon les "text / plain" encodages et plates-formes . La solution rapide et sale serait probablement utiliser Split et l'expression régulière « \ r \ n | \ r | \ n », cependant, il peut se casser sur certains fichiers unicode et il n'a pas de sens du « contexte ». C'est à dire. si vous avez un fichier dans lequel LF (\ n) est utilisé comme marqueur de fin de vie, et il y a des CRs là-bas qui aurait dû être conservés, les CRs seront partagés sur aussi bien.

Vous pouvez utiliser preg_split () pour exploser par / \ n \ r | \ n | \ r /, puis trim () chaque élément pour vous assurer qu'aucun espace de fin est restant (s'il est approprié).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top