Leerzeile nach String bei fgets

Hallo,
ich hab wieder mal ein kleiners Problemchen. Und zwar hab ich ein paar Datensätze aus meiner Datenbank in eine Textdatei gespeichert und zwar so, dass nach jeder SPalte ein Absatz gemacht wird, also in etwa so:

Name
Nachname
Adresse

Wenn ich diese textdatei jetzt aber mit fgets wieder einlesen und dann in die Datenbank zurückspeichern wil, steht hinter dem eingelesenen Text immer noch eine Leerzeile. Ich hab schon probiert den String rumzudrehen und dann alles vor der Leerzeile wegzumachen, aber wenn ich ihn umdrehe, ist diese Leerzeile auf einmal weg. Gibt es ne Möglichkeit die Leerzeilen zu entfernen bzw erst gar nicht einzulesen, ohne die ganze Struktur der Textdatei(Also mit Absätzen) zu ändern?

Noch ein Hinweis: Speichern tu ich die Daten so:

PHP:
...
$nl = chr(13) . chr(10);

fputs($datei, "$name$nl");
fputs($datei, "$nachname$nl");

Dieses $nl macht einen Zeilenvorschub, was ich irgendwo mal gesehn und übernommen hab.
 
zum speichern deiner daten würde ich das mit einem einfachen \n machen, was eigentlich langt, also z.b. so:

fputs($filehandle, $variable."\n");

meinst du beim einlesen eine leerstelle oder eine komplett leere zeile?
bei letzterem filtere sie doch einfach so raus:

PHP:
while( ! feof($filehandle) )
{
 $this_line = trim( fgets($filehandle) );
 if( $this_line )
   //irgendwas tun ;)
}

trim() schneidet dir leerzeichen, zeielenumbrüche sowohl am anfang als auch am ende von jeder zeile raus.
 
Kleiner Nachtrag:

\n entspricht chr(10).chr(13) auf Windows-Systemen und chr(13) auf Unix/Linux-Systemen

Du hattest es genau anders herum.

mfg, snuu
 
Zuletzt bearbeitet:
Zurück