La nouvelle ligne de sortie PHP dans un fichier texte
Mon formulaire php qui enregistre la sortie dans un fichier texte colles le résultat d'une chaîne de caractères comme:
Name1Email1The Message1Name2Email2The Message2Name3Email3The Message3Name4Email4The Message4
Mais j'ai besoin d'espaces et/ou des retours à la ligne. Je normalement ne pas utiliser de PHP donc je ne l'obtenez pas. Je n'ai pas trouver de réponse sur le web, aussi lire quelques questions/réponses ici, mais cela ne m'aide pas.
La Forme:
<form action="mailer.php?savedata=1" method="post">
Your Name: <input type="text" name="name"><br>
Your Email: <input type="text" name="email"><br>
Your Message:<br> <textarea name="message" rows="5" cols="30"></textarea><br>
<input type="submit" name="submit" value="Submit">
</form>
Le PHP
<?php
$savedata = $_REQUEST['savedata'];
if ($savedata == 1){
$data = $_POST['name'];
$data .= $_POST['email'];
$data .= $_POST['message'];
$file = "YOURDATAFILE.txt";
$fp = fopen($file, "a") or die("Couldn't open $file for writing!");
fwrite($fp, $data) or die("Couldn't write values to file!");
fclose($fp);
echo "Your Form has been Submitted!";
}
?>
OriginalL'auteur Darth Severus | 2012-10-16
Vous devez vous connecter pour publier un commentaire.
Comme d'autres réponses de l'état, vous devez ajouter un caractère de fin de ligne après chaque domaine.
Différents OS de l'utilisation différente des fins de ligne, cependant, et un "\n" peut ne pas s'afficher comme une nouvelle ligne sur Windows, par exemple. Comme le Mahdi dit, vous pouvez utiliser Windows style "\r\n" les fins de ligne, ou vous pouvez utiliser le PHP_EOL constante de manière à ce que les fins de ligne approprié pour le serveur sera de sortie, dans ce cas, votre code devrait ressembler à
OriginalL'auteur Dallin
Vous pouvez utiliser "\n" pour écrire une nouvelle ligne.
Juste au passage, \n doit être en doublequotes. Quand ils sont entourés par des guillemets simples, ça ne marchera pas.
OriginalL'auteur Louis Huppenbauer
Lorsque vous concaténer vos valeurs d'entrée comme ça vous n'aurez pas de retours à la ligne; vous pouvez les ajouter à l'aide du littéral
"\n"
ou"\r\n"
. Pour les cordes tous ensemble, vous pouvez utiliser l'opérateur de concaténation ou de l'utilisationsprintf()
comme ci-dessous:J'utilise aussi
file_put_contents()
avec leFILE_APPEND
drapeau pour ajouter des données à un fichier et l'enregistrer à un peu plus de lignes de code.OriginalL'auteur Ja͢ck
J'ai l'habitude de combiner
New Line
avecCarriage Return
:OriginalL'auteur Mahdi
vous r'
$data
variable doit déjà avoir la\n
de caractères de nouvelle ligne.OriginalL'auteur DiverseAndRemote.com
cela fonctionne pour moi:
OriginalL'auteur May Noppadol
Lorsque l'on tente d'extraire des données soumises en ligne via un Formulaire en ligne et d'écrire la même chose à un fichier texte qui est placé sur le serveur web -- sans écraser les informations déjà contenues dans le dit fichier texte, puis nous utilisons le code suivant à l'intérieur de la tags:
Le Code HTML ci-dessus est couplé avec le Code PHP suivant:
Mais les deux Codes d'aboutir à des données qui est ajouté et l'ensemble à cordes dans le fichier texte -- c'est-à-dire, à chaque nouvel enregistrement (ensemble de données), extrait de la suite Web-Formes ne pas commencer sur une nouvelle ligne (il n'y a pas de saut de ligne ou retour chariot).
J'ai cherché sur le Net pour trouver une Solution au Problème ci-dessus, -- comme l'a suggéré sur le Net, j'ai ajouté “\r\n” (entre guillemets) et également utilisé ‘PHP_EOL’ (sans les guillemets):
Pourtant, il n'y a pas de saut de ligne (mon serveur web et mon bureau Windows). Cela signifie qu'il n'y a pas de Solution réalisable à l'intérieur de la connaissance de quelqu'un de la des millions d'Utilisateurs du Net dans le Monde. Il semble que le paramètre " a "remplace “\r\n”, ‘PHP_EOL", etc.
OriginalL'auteur user2396877