2010-02-20 5 views
0

J'ai trois eintries dans un textfile.txt:lu avec textfile delimiter en php

20100220 
Hello 
Here is Text \n blah \t even | and & and so on... 

Je veux lire chaque entrie (ligne) comme une nouvelle chaîne en php. J'ai pensé à utiliser fopen et fgets. Mais: Comme j'utilise des caractères spéciaux comme \ n dans la dernière ligne, fgets() ne fonctionnera pas car il mettra fin à la chaîne à \ n, non? Dans un résultat, la dernière ligne serait juste "Voici le texte".

Comment puis-je lire/faire exploser les trois lignes dans le bon sens, afin que le \ n dans la dernière ligne soit interprété comme une chaîne normale? Merci!

p.s. En ayant trois lignes dans mon textfile.txt j'ai indirectement choisi \ n comme un délimiteur, mais je pourrais également utiliser un autre délimiteur. Quelle est la meilleure façon de lire le contenu?

+0

Avez-vous déjà essayé? Pour autant que je sache, 'fgets()' cherche '" \ n "' (newline), ce qui n'est pas la même chose que ''\ n'' (chaîne littérale \ n). –

+0

OK. Non, je ne l'ai pas, mais je vais essayer. – creativz

Répondre

2

Vous avez deux options:

Utilisez file() pour 1.- obtenir un tableau avec un élément pour chaque ligne (séparés par des '\ n')

$lines_of_file = file("myfile.txt"); 
//Now $lines_of_file have an array item per each line 

2.- Utilisez file_get_contents() pour obtenir une seule chaîne vous pouvez ensuite diviser par un séparateur que vous voulez

$file_content = file_get_contents("myfile.txt"); 
$file_content_separated_by_spaces = explode(" ", $file_content); 
1

Utilisez file(), qui vous donnera automatiquement un tableau ligne par ligne:

$rows = file('textfile.txt'); 

Et même si vous utilisez fgets et tel, vous devriez être en mesure de faire exploser correctement avec "\n" comme elle est traitée différemment que littérale '\n'.