eHolger: "\n"s des Formulars entfernen

Guten Abend,
folgende Situation: Ich habe ein Textfeld in einem Formular, in das man logischerweise Text und - und darin liegt das Problem - auch Zeilenbrüche eingeben (durch die Entertaste). Jetzt wird dieser Text aber in eine TXT-Datei geschrieben, in der jeder Eintrag nur eine Zeile lang sein darf.

Ich will also bezwecken, dass wenn der Text, der in das Textfeld eingegeben wurde, Zeilenumbrüche enthält, diese entfernt und der Text auf eine Zeile "abgeflacht" wird.

Wer kennt den PHP-Befehl?

Grüsse
eHolger

  1. Ich würde ganz einfach mit der Fkt. str_replace(); alle "/n" durch einen Leerstring "" oder ein Leerzeichen (wie du es brauchst)ersetzten lassen.
    also:

    str_replace("/n", " ", $text);

    mfg
    Stefan.

    1. Hello,

      Ich würde ganz einfach mit der Fkt. str_replace(); alle "/n" durch einen Leerstring "" oder ein Leerzeichen (wie du es brauchst)ersetzten lassen.
      also:

      str_replace("/n", " ", $text);

      Im Prinzip schon so aber eher

      $_surch = array("\r\n","\r","\n");
      $replace = chr(127);

      $neustring = str_replace(chr(127),' ',$string);         ## nicht erlaubtes Zeichen tauschen
      $neustring = str_replace($_surch,chr(127),$neustring);  ## störendes Zeichen tauschen

      Und dann wegschreiben.

      Nach dem Holen das Ganze eben Rü+ckgängig machen:

      $neustring = str_replace(chr(127),"\r\n", $holstring);

      Alle Plattformen kommen mit "\r\n" zurecht, sodass man den Informationsverlust verschwerzen kann.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. $neustring = str_replace(chr(127),' ',$string);         ## nicht erlaubtes Zeichen tauschen
        $neustring = str_replace($_surch,chr(127),$neustring);  ## störendes Zeichen tauschen

        Im Prinzip hast du ja Recht, aber wenn ich durch das Formular absende, steht in der Textdatei gar kein "\n". Es ist einfach ein Zeilenumbruch durch das Formular entstanden...

        1. Hello,

          $neustring = str_replace(chr(127),' ',$string);         ## nicht erlaubtes Zeichen tauschen
          $neustring = str_replace($_surch,chr(127),$neustring);  ## störendes Zeichen tauschen

          Im Prinzip hast du ja Recht, aber wenn ich durch das Formular absende, steht in der Textdatei gar kein "\n". Es ist einfach ein Zeilenumbruch durch das Formular entstanden...

          Eben hast Du doch geschrieben, dass Dich die Zeilenümbrüche durch Enter im Textfeld stören.
          Und nun sind plötzlich gar keine drin?

          Harzliche Grüße aus http://www.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau
          1. Und nun sind plötzlich gar keine drin?

            Sorry, habe das chr(127) überlesen...
            Jetzt funktioniert es.

            Besten Dank

  2. Hello,

    darüber habe ich in den letzten vier Wochen bestimmt zweimal ausführlich geschrieben hier.

    Entweder, man tauscht die schädlichen Datenwerte gegen unschädliche vor dem Wegschreiben und nach dem Holen wieder zurück oder man nimmt fgetcsv() und maskiert die Delimiter, die bei PHP aber Enclosure heißen.

    Such im Archiv nach "author:Tom fgetcsv()" und Du wirst fündig.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau