13 votes

php explose le contenu des nouvelles lignes d'un fichier txt

J'ai un fichier txt avec des adresses email sous l'autre comme :

test@test.com
test2@test.com

Jusqu'à présent, j'ai réussi à l'ouvrir avec

 $result = file\_get\_contents("tmp/emails.txt");mais je ne sais pas comment récupérer les adresses email dans un tableau. En fait, je pourrais utiliser explode mais comment délimiter la nouvelle ligne ? Merci d'avance pour toute réponse !

34voto

BoltClock Points 249668

Il suffit de lire le fichier en utilisant file() et vous obtiendrez un tableau contenant chaque ligne du fichier.

$emails = file('tmp/emails.txt');

Pour ne pas ajouter de nouvelles lignes à chaque adresse électronique, utilisez l'option FILE_IGNORE_NEW_LINES et pour sauter les lignes vides, utilisez le drapeau FILE_SKIP_EMPTY_LINES drapeau :

$emails = file('tmp/emails.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

Faire un var_dump($emails) du deuxième exemple donne ceci :

array(2) {
  [0]=>
  string(13) "test@test.com"
  [1]=>
  string(14) "test2@test.com"
}

11voto

David Points 171
$lines = preg_split('/\r\n|\n|\r/', trim(file_get_contents('file.txt')));

2voto

TacticalNinja Points 11

Aussi fou que cela puisse paraître, faire un return o enter à l'intérieur d'un guillemet double ( "" ) délimite une nouvelle ligne. Pour que cela soit clair, tapez :

explode("", "Stuff to delimit");

et appuyez simplement sur la touche retour au milieu de "" Vous obtenez donc

explode("

", "stuff to delimit");

et cela fonctionne. Ce n'est probablement pas conventionnel, et cela pourrait ne fonctionner que sous Linux. Mais ça marche.

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