Maax: Umwandlung von LF in CR in Zusammenhang mit Textareas vermeiden

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

  1. 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

    1. Hi,

      BTW:Meinst Du Carriage-Return?

      Ja - zu dumm, wenn man immer nur die Abkürzungen nutzt...

      Danke,
      Maax

  2. 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©

    --
    Freunde kommen und gehen. Feinde sammeln sich an.
    1. 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

      1. 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

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        1. 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

          1. 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

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
            1. 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

  3. 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.

    --
    水-金-地-火-木-土-天-海-冥
    1. 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