Fonction mail php et variable
gégé25
-
Dalida Messages postés 6728 Date d'inscription Statut Contributeur Dernière intervention -
Dalida Messages postés 6728 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je vous expose mon problème je souhaite envoyer par mail les 5 dernières lignes d'un fichier texte, j'ai donc ce code :
Il me récupère bien les 5 dernières lignes car l'echo les marque bien mais comment les envoyer ensuite par mail ? il faudrait en faite dans message(text) pouvoir mettre
mais comment faire pour la fonction mail me récupère le contenu de ces variables ?
merci d'avance de votre aide.
cordialement
je vous expose mon problème je souhaite envoyer par mail les 5 dernières lignes d'un fichier texte, j'ai donc ce code :
<?php //fichier à traiter $text = file_get_contents('lol.txt'); //nombre d'occurences (ici, de lignes) à récupérer en partant de la fin $nb = 5; $end = 0; $count = strlen($text); for($i=0;$i<$nb;$i++){ $strrpos = strrpos($text, 10, -$end); $end = $count - $strrpos + 1; } echo substr($text, $strrpos); mail('lol@aol.com', 'sujet', 'text'); ?>
Il me récupère bien les 5 dernières lignes car l'echo les marque bien mais comment les envoyer ensuite par mail ? il faudrait en faite dans message(text) pouvoir mettre
echo substr($text, $strrpos)
mais comment faire pour la fonction mail me récupère le contenu de ces variables ?
merci d'avance de votre aide.
cordialement
A voir également:
- Fonction mail php et variable
- Fonction si et - Guide
- Publipostage mail - Accueil - Word
- Windows live mail - Télécharger - Mail
- Créer une adresse mail hotmail - Guide
- Comment télécharger un mail - Guide
4 réponses
merci beaucoup pour la réponse maintenant j'ai un nouveau problème j'ai besoin d'ajouter du texte récupérer dans une autre variable à mon mail j'ai donc voulu faire comme cela :
La variable text2 s'écrit bien mais c'est sur la meme ligne or je voulais passer une ligne avec le nl2br (meme deux ou trois dans l'absolu).
Avez-vous une idée ?
cordialement
<?php //fichier à traiter $text = file_get_contents('lol.txt'); //nombre d'occurences (ici, de lignes) à récupérer en partant de la fin $nb = 5; $end = 0; $count = strlen($text); for($i=0;$i<$nb;$i++){ $strrpos = strrpos($text, 10, -$end); $end = $count - $strrpos + 1; } //echo substr($text, $strrpos); $text = substr($text, $strrpos); $text2 = "lol test2" ; mail('lol@aol.com', 'sujet', $text . nl2br($text2)); ?>
La variable text2 s'écrit bien mais c'est sur la meme ligne or je voulais passer une ligne avec le nl2br (meme deux ou trois dans l'absolu).
Avez-vous une idée ?
cordialement
salut,
pour nl2br(), il faudrait que tu aies une "new line" à transformer en <br/> ce n'est pas le cas et de toute façon ton mail n'est pas en HTML donc c'est un caractère de fin de ligne/nouvelle ligne qu'il te faut :
et tu mets autant de PHP_EOL que tu veux.
pour nl2br(), il faudrait que tu aies une "new line" à transformer en <br/> ce n'est pas le cas et de toute façon ton mail n'est pas en HTML donc c'est un caractère de fin de ligne/nouvelle ligne qu'il te faut :
$text = substr($text, $strrpos); $text = $text.PHP_EOL."lol test2" ; mail('lol@aol.com', 'sujet', $text);
et tu mets autant de PHP_EOL que tu veux.
merci encore pour cette aide, et je vais encore t'embêter car maintenant je souhaiterais récupérer les 5 dernières lignes de deux fichiers texte or ma variable
je pensais juste faire une copier coller de mon code mais bien sur les fonctions substr et strrpos seront attribués deux fois ou trois ou quatre donc mon script l'affiche que le la première variable ici $text.
comment pourrais-je faire pour que le script ouvre tous les fichiers text eet ensuite applique le même code qui reprend les 5 dernières lignes du programme pour ensuite afficher les 5 dernières lignes de cinq fichiers texte dans le même e-mail ?
donc à la fin $text= $text1.PHP_EOL.$text2.PHP_EOL.$text3;
qui m'afficherait les 5 dernières lignes de $text1 , $text2 et $text3 avec un espace entre ces 3 variables .
je ne sais pas si je me suis bien fait comrpendre .
cordialement
$text = substr ($text, $strerpos);
je pensais juste faire une copier coller de mon code mais bien sur les fonctions substr et strrpos seront attribués deux fois ou trois ou quatre donc mon script l'affiche que le la première variable ici $text.
comment pourrais-je faire pour que le script ouvre tous les fichiers text eet ensuite applique le même code qui reprend les 5 dernières lignes du programme pour ensuite afficher les 5 dernières lignes de cinq fichiers texte dans le même e-mail ?
donc à la fin $text= $text1.PHP_EOL.$text2.PHP_EOL.$text3;
qui m'afficherait les 5 dernières lignes de $text1 , $text2 et $text3 avec un espace entre ces 3 variables .
je ne sais pas si je me suis bien fait comrpendre .
cordialement
salut,
j'ai pas testé, si ça passe direct c'est du miracle !
j'ai pas testé, si ça passe direct c'est du miracle !
<?php $text = ''; $file_paths = array('file1.txt', 'file2.txt', 'file3.txt', 'file4.txt', 'file5.txt'); array_walk($file_paths, 'get_last_lines', $text); function get_last_lines($value, $key, &$text) { $content = file_get_contents($value); $content = array_slice(explode(PHP_EOL, $value), -5, 5); $text .= implode(PHP_EOL, $content).PHP_EOL.PHP_EOL; } ?>