Umwandlung von LF in CR in Zusammenhang mit Textareas vermeiden
Maax
- php
Hi!
Ich habe folgendes Problem: Ich schreibe den Inhalt einer Datei per PHP in eine Textarea, ändere den Inhalt der Textarea und sende diese wieder an das PHP-Script, welches sie wieder in die Datei schreibt.
Ärgerlicher Weise werden dabei allerdings die Linefeeds in Currentreturns (oh nein - ich habe nicht mehr die geringste Ahnung, wie man das schreibt) umgewandelt.
Kennt jemand eine Möglichkeit, das Problem zu umgehen?
Danke für eure Bemühungen,
Maax
habe d'ehre Maax
Ich habe folgendes Problem: Ich schreibe den Inhalt einer Datei per PHP in eine Textarea, ändere den Inhalt der Textarea und sende diese wieder an das PHP-Script, welches sie wieder in die Datei schreibt.
Ärgerlicher Weise werden dabei allerdings die Linefeeds in Currentreturns (oh nein - ich habe nicht mehr die geringste Ahnung, wie man das schreibt) umgewandelt.Kennt jemand eine Möglichkeit, das Problem zu umgehen?
Dein Script aendern? BTW:Meinst Du Carriage-Return?
man liest sich
Wilhelm
Hi,
BTW:Meinst Du Carriage-Return?
Ja - zu dumm, wenn man immer nur die Abkürzungen nutzt...
Danke,
Maax
Moin Maax,
Ärgerlicher Weise werden dabei allerdings die Linefeeds in Currentreturns (oh nein - ich habe nicht mehr die geringste Ahnung, wie man das schreibt) umgewandelt.
aus Deiner Beschreibung werde ich nicht wirklich schlau. Was hast Du den zuviel oder zuwenig?
LR / CR bzw. \n / \r oder 10 / 13
Anyway ist hier Dein Freund str_replace
regds
Mike©
Hi,
vielleicht habe ich mich ein wenig (oder auch ein wenig mehr) doof ausgedrückt...
Was ich meine ist, dass in einer Textarea sowohl \n als auch \r als Zeilenumbruch angezeigt werden und wenn das ganze wieder an das Script gesendet wird kann dieses es nicht mehr unterscheiden.
Das macht - je nach Datei - ziemliche Probleme.
Hat jemand eine Idee, wie man dieses Problem umgehen kann?
Möglichst sollten dabei die \r in der Textarea nicht sichtbar sein, die \n jedoch schon - gespeichert werden soll jedes so wie es anfangs war...
Anyway ist hier Dein Freund str_replace
Ich bin mir da nicht ganz sicher - schließlich kann ich ja nicht pauschal alle \r zu \n machen oder sowas...
Danke für die Vorschläge,
Maax
Hi,
Ich bin mir da nicht ganz sicher - schließlich kann ich ja nicht pauschal alle \r zu \n machen oder sowas...
$content=str_replace('%0D%0D%0A','%0D%0A',$content);
Bei "vermurksten" Dateien hast Du statt %0D%0A (Windows-EOL) ggf. %0D%0D%0A. Die kannst Du (in Textdateien) alle gefahrlos ändern.
Gruß, Cybaer
Hi,
danke für deine Antwort.
Wenn ich mich nicht sehr täusche (und nicht alle meine Experimente mich täuschen) ist das aber noch nicht die Lösung für folgendes Problem (dessen Lösung ich suche):
Beim Auslesen einer Datei mittles get_file_contents() in eine Textarea (ich weiß nicht, wo genau hier das Problem entsteht) werden \r in \n umgewandelt - und beim darauf folgenden Speichern zurück in die Datei gibt es natürlich dann auch keinen Unterschied mehr.
Mein Ziel: Ich möchte eine Datei in eine Textarea schreiben, eventuell ändern und dann wieder speichern - ohne, dass dabei \r zu \n wird...
Gibt es hierfür eine Lösung?
Danke,
Maax
Hi,
Beim Auslesen einer Datei mittles get_file_contents() in eine Textarea (ich weiß nicht, wo genau hier das Problem entsteht) werden \r in \n umgewandelt
Das wäre mir absolut neu.
Läuft dein Browser nicht unter Windows? Welches System denn?
Gibt es hierfür eine Lösung?
Ich habe *dieses* Problem dabei noch nie gehabt.
Gruß, Cybaer
Hi!
Beim Auslesen einer Datei mittles get_file_contents() in eine Textarea (ich weiß nicht, wo genau hier das Problem entsteht) werden \r in \n umgewandelt
Das wäre mir absolut neu.
Hm - vielleicht war das auch ein Trugschluss meinerseits.
Es ist aber so, dass mein Firefox 1.5 unter Linux keinen Unterschied zwischen dem \r und dem \n in der Textarea macht - auch nicht in der Quelltext-Ansicht (Strg-U).
Danke für deine Bemühungen!
Maax
Hey,
kannst du mal folgendes Experiment durchführen?
① Schreibe die Datei wie gehabt in die Textarea und achte darauf, dass sich zwischen Start- und Endtag keine zusätzliches Whitespaces oder sonstige Zeichen einschleichen.
② Speichere die Ausgabe mit einem UA, der garantiert nicht den Inhalt aus Bequemlichkeit für den Nutzer vermurkst, z.B. wget.
③ Prüfe mit einem Hexeditor, ob jetzt schon die \r ruiniert sind.
Falls ja, ist es die Schuld von PHP.
Falls nein, ist es entweder die Schuld vom Browser beim Zurücksenden oder die Schuld von PHP beim Empfangen.
Hi,
danke für die mehr als ausführliche und super verständliche Antwort.
Ich habe das wie beschrieben ausgeführt und in der Tat: Der Firefox ist Schuld, ABER (gleichgültig) der Opera macht das auch und (Genugtuung) der IE ist auch nicht besser :-) !
D.h. das Problem ist unlösbar?
(Mal abgesehen davon, dass man vorher alle \r durch "%%%HIERKOMMTEINCURRIAGERETURN%%% ersetzen könnte und danach umgekehrt, was aber in dem Fall alles andere als praktikabel ist.)
Danke,
Maax