Nachricht in eine Zeile

webdesign

Mitglied
Hallo zusammen

Ich habe ein Gästebuch gebastelt, wobei die Daten in eine Textdatei geschrieben werden.
Die Ausgabe erfolgt zeilenweise. Wenn jedoch jemand eine Nachricht mit mehreren Zeilen schreibt, schreibt es mir auch mehrere Zeilen in die Textdatei. Ich möchte jedoch, dass es mir nur in eine Zeile schreibt, ist das irgendwie möglich?

Die Nachricht in der Zeile sollte dann etwa so aussehen:

nachrichttextzeile1<br>zeile2<br>zeile3

Ich bin schon lange am suchen, habe jedoch noch nichts gefunden, was mir weiterhelfen könnte.

Hier noch mein Quelltext für das Gästebuch:

PHP:
<?php

 $new_name = $HTTP_POST_VARS['name'];
 $new_vorname = $HTTP_POST_VARS['vorname'];
 $new_email = $HTTP_POST_VARS['email'];
 $new_homepage = $HTTP_POST_VARS['homepage'];
 $new_nachricht = $HTTP_POST_VARS['nachricht'];

 $datei = "daten.txt";
 $new_datum = date("d.m.Y");
 $new_zeit = date("H:i");

if(file_exists($datei))
{
	if($post)
	{
	$fp = fopen($datei, "a+"); // Datei zum lesen öffnen
	
	$new_nachricht=strip_tags($new_nachricht);
 		
	// Neue Formularelemente
	$data = "$new_name|-|$new_vorname|-|$new_email|-|$new_homepage|-|$new_nachricht\n";
		
	// daten in Datei speichern
	fwrite($fp,$data);
	fclose($fp);
	}




// die Einträge auslesen &anzeigen
$inhalt = file($datei,"r");
$anzahl = count($inhalt);
	for($i = 0; $i < $anzahl; $i++)
	{
	$eintrag = explode("|-|",$inhalt[$i]); //Inhalt zerteilen
	// Variablen definieren
	$name = $eintrag[0];
	$vorname = $eintrag[1];
	$email = $eintrag[2];
	$homepage = $eintrag[3];
	$datum = $eintrag[5];
	$zeit = $eintrag[6];
	$nachricht = $eintrag[7];
	$show_homepage="<a href=\"$homepage\" target=\"_blank\"><img src=\"http://www.niklausrueegg.ch/images/hp.gif\" height=\"14\" width=\"14\" border=\"0\"></a>";
	$show_email="<a href=\"mailto:$email\"><img src=\"http://www.niklausrueegg.ch/images/mail.gif\" height=\"11\" width=\"14\" border=\"0\"></a>";	
		
		if($homepage == "")
		{
		$homepage="";
		}
		else
		{
		$homepage=$show_homepage;
		}
		if($email == "")
		{
		$email="";
		}
		else
		{
		$email=$show_email;
		}
		
	// Daten ausgeben
	echo"<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
	<tr>
	<td width=\"10\" align=\"center\" valign=\"top\">&nbsp;</td>
	<td align=\"left\" valign=\"top\" width=\"*\"><b>$zeit &nbsp;$datum</b></td>
	</tr>
	</table>
	<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
	<tr>
	<td width=\"10\" align=\"center\" valign=\"top\">&nbsp;</td>
	<td align=\"left\" valign=\"top\" width=\"200\"><b>$vorname &nbsp;$name</b></td>
	<td align=\"left\" valign=\"bottom\" width=\"40\">$email</td>
	<td align=\"left\" valign=\"bottom\" width=\"*\">$homepage</td>
	</tr>
	</table>
	<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
	<tr>
	<td width=\"10\" align=\"center\" valign=\"top\">&nbsp;</td>
	<td align=\"left\" valign=\"top\" width=\"*\">$nachricht</td>
	</tr>
	</table>
	<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
	<tr>
	<td width=\"10\" align=\"center\" valign=\"top\">&nbsp;</td>
	<td width=\"*\" align=\"center\" valign=\"top\" id=\"gb\">&nbsp;</td>
	<td width=\"10\" align=\"center\" valign=\"top\">&nbsp;</td>
	</tr>
	</table>\n";
	}
} 
else 
{ 
echo"Es wurde keine Datei gefunden"; 
} 



?>

Vielen Dank

Gruss Jonas
 
Ganz einfach: Gleich nachdem du die neue Nachricht aus den POST_VARS holst, musst du die Zeilenumbrüche in &lt;br&gt; umwandeln. Ich glaub, dafür gibt's sogar ne extra Funktion. In jedem Fall kannst du str_replace() verwenden. Der Zeilenumbruch müsste "\n" oder chr(10) sein.
 
Danke erstmals

Ich glaube du hast meine Frage nicht richtig verstanden.
Ich weiss wie man die Zeilenumbrüche in <br> umwandelt, aber dadurch gibt es nur ein <br> anstelle eines "n". Die Nachricht sieht dann so aus:
nachrichterstezeile<br>
nachrichtzweitezeile<br>
usw.

Dadurch kann ich nicht eine Zeile als einen Eintrag auslesen.
Ich suche etwas, womit ich alles in eine Zeile schreiben kann, damit es so aussieht:

nachrichterstezeile<br>nachrichtzweitezeile<br>nachrichtdrittezeile<br>

Mit implode() kann man doch Text zusammenfügen. Ich habe es damit versucht, geht aber nicht.

Kann mir nicht jemand weiter helfen?
Vielen Dank

Gruss Jonas
 
Zurück