PHP Zeilenumbruch
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
befehl
behandeln
besseres wort
code
datei
eintrag
erzeugt code
file
inhalt
kristallkugel
momentane inhalt
schule
string
system
textdatei
umwandeln
windows
zeile
zweig
-
Hallo, wir behandeln gerade in der Schule PHP und haben eine Aufgabe bekommen, in dem wir in eine Textdatei einen Benutzernamen und ein Passwort eingeben. Nun muss bei jedem neuen Benutzernamen in eine neue Zeile gesprungen werden. Mein Code:
<?php $datei = 'Passwort.txt'; $Name = $_POST['Name']; $Passwort = $_POST['Passwort']; if ( file_exists ( $datei ) ) { $file = fopen($datei, "r+"); } else { fopen ($datei, "a+"); $file = fopen($datei, "r+"); fclose($file); $First_Check = true; } $file = fopen($datei, "r+"); while (!feof($file)) { $Inhalt = $Inhalt . fgets($file, 1000); } $Inhalt = $Inhalt . "\n" . $Name . ":" . $Passwort; print($Inhalt); rewind($file); fwrite($file, $Inhalt); fclose($file); ?>
Bei$Inhalt = $Inhalt . "\n" . $Name . ":" . $Passwort;
wird der momentane Inhalt und der neue Eintrag geschrieben. Aber irgendwie funktioniert der Zeilenumbruch "\n" nicht. Ich habe auch schon \r\n versucht. Geht auch nicht. Wie kann man also einen Zeilenumbruch machen?
Übrigens benutze ich zum umwandeln XAMPP. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
mifa schrieb:
<?php $datei = 'Passwort.txt'; $Name = $_POST['Name']; $Passwort = $_POST['Passwort']; if ( file_exists ( $datei ) ) { $file = fopen($datei, "r+"); } else { fopen ($datei, "a+"); $file = fopen($datei, "r+"); fclose($file); $First_Check = true; } $file = fopen($datei, "r+"); while (!feof($file)) { $Inhalt = $Inhalt . fgets($file, 1000); } $Inhalt = $Inhalt . "\n" . $Name . ":" . $Passwort; print($Inhalt); rewind($file); fwrite($file, $Inhalt); fclose($file); ?>
1. Die if abfrage, ob die Datei existiert ist unnötig: a+ erzeugt eine neue Datei falls keine vorhanden ist und setzt die Schreibmarke (mir fällt kein besseres Wort ein) ans Ende. Kurz alles von if bis zu der } des else-Zweiges weg und bei dem fopen-Befehl danach statt r+ a+.
2. Zeilenumbrüche kannst du verschieden machen (einfach alle Varianten durchtesten):
2.1
fwrite($file, " " . $Name . ":" . $Passwort);
(Ja der Zeienumbruch muss da hin!)
Ist die "dreckige Lösung"
oder
2.2
Du erzeugst dir eine Konstante, die den Zeilenumbruch erzeugt.
define("CRLF",chr(13).chr(10)); //Definiert die Variable fwrite($datei,$string . CRLF); //Gibt $string und einen Zeilenumbruch aus
WICHTIG: die zweite Lösung funktioniert nur bei Windows-Systemen (von denen du aber eins hast, sagt zumindest meine Kristallkugel).
Beitrag zuletzt geändert: 29.9.2009 20:23:58 von computertechnikforum -
Geht auch mit \n oder habe ich da jetzt was falsch verstanden?
$zeile="Passwort|-|Benutzer\n";
-
Nein, das geht nicht. Ich habs schon versucht. Auch \r\n geht nicht.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage