PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP: Dateien und Zeilenumbrüche


BofD
2004-04-27, 21:39:38
Hi Leute,
ich habe folgendes Problem. Ich hab nen Newscript(textdateibasiert) geschrieben und das funktioniert auch, solange ich keine Zeilenumbrüche eingebe. Ich vermute der Fehler liegt beim Speichern oder Lesen der Datei.
Ausgabe der News (news.php):
<?php
$datei = fopen("news.txt", "r");
$inhalt = $inhalt.fgets($datei, 99999);
fclose($datei);
//... Ausgabe des Inhalts per explode() und echo() Befehl
?>
Hinzufügen der News (admin.php):
<?php
//Alten Inhalt lesen
$datei = fopen("news.txt", "r");
$inhalt = fgets($datei, 99999);
fclose($datei);
//Neuen Inhalt am Anfang hinzufügen
$datei = fopen("news.txt", "w");
//...Zusammenstellen von $beitrag
fwrite($datei, $beitrag);
fwrite($datei, $inhalt);
fclose($datei);
?>

Mit diesem Script wird nur die erste Zeile in der Datei news.txt verarbeitet. Also gibt es zwei Lösungsansätze:

1. Keine Zeilenumbrüche in die Datei news.txt schreiben ( Wie geht das? Irgendwelche String-Formatierungen?)

...oder 2. Alle Zeilen der Datei news.txt lesen. (Irgendwas mit feof, aber irgendwie will das nicht richtig)

Habt ihr ne Idee wie das gehen könnte?
MfG Breath of Death

Binaermensch
2004-04-28, 23:36:07
fgets liest nur bis zum zeilenende.
http://at.php.net/manual/de/function.fgets.php

alternative: http://at.php.net/manual/de/function.file-get-contents.php

Matthias2x
2004-04-29, 04:09:17
eine andere Lösung wäre evtl. die Zeilenumbrüche beim eintragen in das File gleich in HTML-Tags umzuwandeln, etwa so:

$beitrag = str_replace("\n","<br />",$beitrag);
$beitrag = str_replace("\r\n","<br />",$beitrag);


beim auslesen für das Admin-Interface müsste man das ganze dann natürlich wieder zurück konvertieren:

$inhalt = str_replace("<br />","\n",$inhalt);


probier es mal, müsste aber klappen...

BofD
2004-04-29, 18:28:29
Ok,
DANKE!!!
beide Methoden funktionieren.