PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : In Textarea Zeilenumbrüche zulassen



asterix88
03-07-2010, 13:47
Hallo.
Ich habe einen Blog mit PHP geschrieben, bei dem die Einträge in einer .log-Datei gespeichert werden. Ich weiß, ist nicht schön, lieber mit Datenbank, aber ich hab im Moment nicht die Zeit, mich in Datenbanken einzuarbeiten. Also nehmt es so hin ;)

In meiner Datei wird jeder Datensatz durch eine neue Zeile dargestellt.
Wenn ich jetzt aber in meiner textarea ENTER drücke, dann wird der neue Absatz in eine neue Zeile meiner Textdatei geschrieben. Jetzt suche ich eine Möglichkeit, den Zeilenumbruch in
<br> umzuwandeln, damit die Ausgabe nachher funktioniert.
Im Moment lese ich die Zeile so ein:

$daten = $user."|".$_POST[eintrag].chr(10);
Die Pipe ist mein Seperator in der Datei, um die einzelnen Felder auseinander zu halten.

Ich hoffe, ihr versteht mein Problem, und habt eine Lösung für mich...
Bin noch PHP-Neuling :cool:

msi
03-07-2010, 19:34
nl2br und nutz davor htmlentities!!
http://de3.php.net/nl2br

asterix88
04-07-2010, 09:58
das funktioniert leider nicht :-(
zwar hab ich dann die html entities da drin, aber selbst mit html_entity_decode in der ausgabe geht es nicht, weil er trotzdem in die neue zeile springt...

Hier mal mein Code, der in die Datei reinschreibt:



$daten = ($user."|".$datum."|".$zeit."|".$_POST[eintrag].chr(10));

$eintrag = "blog.log";
$datei = fopen($eintrag, "a+");
fwrite($datei, $daten);
fclose($datei);


und hier der für die Ausgabe:


$ausgabe = file("blog.log");
$ausgabe = array_reverse($ausgabe);

$n = count($ausgabe);

for( $i=0; $i<$n ; $i++ )
{
$array[] = $ausgabe[$i];
$daten = $array[$i];
$daten = explode("|",$daten);

$user = $daten[0];
$datum = $daten[1];
$zeit = $daten[2];
$eintrag = $daten[3];

$nr--;

echo '<table>';
echo '<tr>';
echo '<td width=25 class="fett">'.$nr.'</td>';
echo '<td width=80 class="fett">'.$user.'</td>';
echo '<td width=80 class="fett">'.$datum.'</td>';
echo '<td width=65 class="fett">'.$zeit.'</td>';
echo '<td width=712>'.$eintrag.'</td>';
echo '</tr>';
echo '</table>';
}



Ich hoffe, ihr könnt damit was anfangen...

jeebee
04-07-2010, 11:09
Hey,

hab mir mal deinen Code angeschaut, und versucht was daraus zu machen. Das Ergebnis findest du im Anhang.

HTH jeebee

PS: Bitte nicht nur verwenden, sondern auch verstehen!

asterix88
04-07-2010, 17:59
:eek: danke
hab gar nicht mit ner fertigen lösung gerechnet :-)
deine lösung läuft bei mir auf dem rechner irgendwie nicht, aber ich hab den input-code herauskopiert, und bei mir rein, und es funktioniert so, wie ich es mir vorgestellt hab.

jetzt werd ich herausfinden, warum es so funktioniert.


danke nochmal für diese lösung!!!