J'essaie de lire chaque ligne d'un fichier texte dans un tableau et d'avoir chaque ligne dans un nouvel élément.
Mon code jusqu'à présent.
<?php
$file = fopen("members.txt", "r");
$i = 0;
while (!feof($file)) {
$line_of_text = fgets($file);
$members = explode('\n', $line_of_text);
fclose($file);
?>
'\n\'
ne sera pas explosé alors qu'il doit être un"\n"
pour qu'il soit analysé comme une séquence d'échappement.Réponses:
Si vous n'avez besoin d'aucun traitement spécial, cela devrait faire ce que vous recherchez
la source
file()
semble être considérablement plus lent quefile_get_contents
+explode
à tableauLe moyen le plus rapide que j'ai trouvé est:
où $ filename va être le chemin et le nom de votre fichier, par exemple. ../filename.txt.
Selon la façon dont vous avez configuré votre fichier texte, vous devrez peut-être jouer avec le \ n bit.
la source
Utilisez simplement ceci:
la source
FILE_IGNORE_NEW_LINES
éviter d'ajouter une nouvelle ligne à la fin de chaque élément du tableauVous pouvez également utiliser
FILE_SKIP_EMPTY_LINES
pour sauter les lignes videsréférence ici
la source
la source
De toute évidence, vous devrez d'abord créer un descripteur de fichier et le stocker
$file
.la source
C'est aussi simple que ça:
file_get_contents()
- obtient le fichier entier sous forme de chaîne.explode("\n")
- divisera la chaîne avec le délimiteur"\n"
- qu'est-ce qu'un échappement ASCII-LF pour une nouvelle ligne.Mais faites attention - vérifiez que le fichier a une terminaison UNIX -Line.
si
"\n"
cela ne fonctionne pas correctement, vous avez un autre codage de 2 newline et vous pouvez essayer"\r\n"
,"\r"
ou"\025"
la source
la source
Vous étiez sur la bonne voie, mais il y a eu des problèmes avec le code que vous avez publié. Tout d'abord, il n'y avait pas de parenthèse fermante pour la boucle while. Deuxièmement, $ line_of_text serait écrasé à chaque itération de boucle, ce qui est corrigé en changeant le = en a. = Dans la boucle. Troisièmement, vous faites exploser les caractères littéraux '\ n' et non une nouvelle ligne réelle; en PHP, les guillemets simples indiqueront des caractères littéraux, mais les guillemets doubles interpréteront en fait les caractères et les variables échappés.
la source
Cela acceptera le fichier txt comme tableau. Alors écrivez quelque chose dans le fichier links.txt (utilisez une ligne pour un élément) après, exécutez cette page :) votre tableau sera $ file
la source
Cela a été assez bien couvert ici, mais si vous avez VRAIMENT besoin de performances encore meilleures que tout ce qui est répertorié ici, vous pouvez utiliser cette approche qui utilise
strtok
.Notez que cela suppose que votre fichier est enregistré avec
\n
comme caractère de nouvelle ligne (vous pouvez le mettre à jour au besoin), et qu'il stocke également les mots / noms / lignes comme clés de tableau au lieu des valeurs, afin que vous puissiez l'utiliser comme un table de recherche, permettant l'utilisation deisset
(beaucoup, beaucoup plus rapide), au lieu dein_array
.la source