Seite 1 von 1

PHP: Ausgelesene Daten mit Form-Feld vergleichen

Verfasst: 26.02.2007 18:25
von JohnMC
Hallo,
ich hab ne Frage zu PHP:
ich schreibe den Text aus einem Formularfeld (HTML) in ne Datei (mit fwrite) und danach ein \n und in die nächste Zeile zu kommen.
Jetzt lese ich das ganze wieder aus, Zeile für Zeile. Blöderweise ist an meinem ausgelesenen String am ende immer noch ein komisches Zeichen, das größer als nichts ist aber kleiner als ein Space :? (Wenn ich richtig sehe :wink: )
Das erkenne ich daran, dass, wenn ich einfach Zeile für Zeile dann mit echo ausgebe, ein bisschen Platz zwischen den Strings ist, obwohl da eigentlich keiner sein darf.

Das Problem ist, dass ich die Strings mit Eingaben aus einem HTML-Formular vergleichen muss, also testen muss, ob die Zeile (der String) den Eingaben gleichen.

Das gleiche Problem hab ich auch, wenn ich eine Bild-Adresse in eine Datei speichere (via PHP) und danach auslese und anzeigen will. Das Bild ist dann schlicht nicht vorhanden, wiel ja dieses komische Zeichen am Ende drannehängt.
Das Problem hab ich übrigens nur bei PHP-Befehlen, das heißt, ich kann das Bild anzeigen lassen, wenn ich per echo-Befehl HTML-Befehle inkl. der Bildadresse ausgebe. Aber ich kann z.B. nicht mit GetImageSize arbeiten.

Lange Rede, Kurzer SInn:
Was ist das für ein Zeichen und wie bekomm ichs weg? :wink:

Verfasst: 26.02.2007 19:26
von mknjc
Probier mal mit:

Code: Alles auswählen

echo ord(substr($str, -1, 1));
Den Asciiwert auszulesen... Das könnte helfen da mir das nicht aufgefallen ist.

Mfg mknjc

Verfasst: 26.02.2007 20:22
von JohnMC
hallu,
das zeichen ist ASCII 10. Ich habe gehrausgefudnen dass das das \n oder LF (Line-Feed) Zeichen ist. Und dass es aufs OS drauf ankommt, wie dieses Zeichen interpretiert wird, dh, ein Webserver mit Linux&XAMPP es anderst interpretiert als ein Windows-Server. Habe ich das richtig verstanden? Weil bei mir läuft das Skript auf einem WindowsServer, ich könnte aber auch einfach XAMPP nehmen, falls das klappen würde...
Mfg

Verfasst: 26.02.2007 21:19
von 125
Unter Linux ist \n = 10 und unter Windows 13 und 10 also zwei Zeichen hintereinander.

Verfasst: 27.02.2007 21:33
von JohnMC
kann ich das ganze Multi-System-Fähig machen?
mFg

Verfasst: 05.03.2007 20:56
von bluejoke
Etwas spät, aber immerhin...:
Zeig doch ein klein bisschen davon, wie du alles aus dem Eingabefeld ausliest und in die Datei schreibst. Ich denke da machst du irgendwas falsch, weil ein \n ist ja schon dabei, wenn es gesendet wird.