Erich: Zeilenumbruch entfernen

Hallo zusammen.

Ich habe ein simples Problem. Ich fand viele Lösung dazu, aber keine funktioniert.

Folgendes: Ich habe einen String. Der String kommt per Post von einem Formular (Textfeld).

Beispiel:
Line 1
Line 2
Line 3

Nun will ich die Zeilenumbrüche durch nichts ersetzen, also wie

Line 1Line 2Line 3

Folgendes geht nicht:

echo $text;
echo "<br>------<br>";
$text = str_replace('\n', '', $text);
$text = str_replace('\r\n', '', $text);
$text = str_replace('\r', '', $text);
echo $text;

Gibt jedoch

Line 1
Line 2
Line 3
------
Line 1
Line 2
Line 3

aus statt, dass es das zweite Mal ohne die Zeilenübruche wäre.
Wenn ich nl2br() nehme, macht er folgendes:

Line 1
Line 2
Line 3
------
Line 1<br />
Line 2<br />
Line 3

Aber die wirklichen Zeilenumbrüche, sind immer noch da. D.h. zuerst nl2br und dann die <br /> killen geht auch nicht.

Weiss von euch jemand, wie ich diese wirklich wegbringe?

Danke und Grüsse aus der Schweiz,
Erich

  1. Hi!

    Nun will ich die Zeilenumbrüche durch nichts ersetzen, also wie

    Line 1Line 2Line 3

    Folgendes geht nicht:

    echo $text;
    echo "<br>------<br>";
    $text = str_replace('\n', '', $text);
    $text = str_replace('\r\n', '', $text);
    $text = str_replace('\r', '', $text);
    echo $text;

    Machs mal so:

      
    $search = array("\n", "\r\n", "\r");  
    $text = str_replace($search, '', $text);  
    
    

    In einfachen Anführungszeichen werden Sachen wie \n, \r\n, etc. nicht als Zeilenumbruch erkannt. Die Lösung mittels eines Arrays macht das Ganze dann noch mal ein bisschen schöner ;-)

    Grüße,
    Fabian St.

    1. Hi

      In einfachen Anführungszeichen werden Sachen wie \n, \r\n, etc. nicht als Zeilenumbruch erkannt.

      Also, ich kenn mich mit PHP schon ziemlich gut aus, aber davon hab ich ja noch nie was gehört, noch dazu klingt das extrem unlogisch, warum es an einfachen Anführungszeichen liegt.
      Nicht, dass ich dir nicht glaube, ganz im Gegenteil, aber ich würde trotzdem gern den Grund wissen.

      1. Hi,

        Also, ich kenn mich mit PHP schon ziemlich gut aus, aber davon hab ich ja noch nie was gehört,

        Das ist eigentlich ein Widerspruch.
        Das Wissen über die Basis-Typen einer Sprache und wie deren Literale notiert werden, gehört zu den absoluten Grundlagen.

        noch dazu klingt das extrem unlogisch, warum es an einfachen Anführungszeichen liegt.

        Ob logisch oder nicht, in PHP ist das so definiert: http://www.php.net/manual/en/language.types.string.php

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        Schreinerei Waechter
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    2. Hello,

      $search = array("\n", "\r\n", "\r");
      $text = str_replace($search, '', $text);

      besser:
      $search = array("\r\n", "\n", "\r");

      Die Elemente des Arrays werden der Reihe nach abgearbeitet.

      Harzliche Grüße vom Berg
      esst mehr http://www.harte-harzer.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. echo $begrüßung;

        $search = array("\n", "\r\n", "\r");
        besser:
        $search = array("\r\n", "\n", "\r");

        Die Elemente des Arrays werden der Reihe nach abgearbeitet.

        Wenn sowieso alle Zeilenumbruchszeichen raus müssen, dann ist die Kombination der Zeichen irrelevant. \n und \r einzeln reicht völlig.

        $search = array("\n", "\r");

        echo "$verabschiedung $name";

        1. Hello,

          $search = array("\n", "\r\n", "\r");
          besser:
          $search = array("\r\n", "\n", "\r");

          Die Elemente des Arrays werden der Reihe nach abgearbeitet.

          Wenn sowieso alle Zeilenumbruchszeichen raus müssen, dann ist die Kombination der Zeichen irrelevant. \n und \r einzeln reicht völlig.

          $search = array("\n", "\r");

          Beim Ersetzen gegen nichts, also dem Löschen hast Du da wohl Recht.
          Beim Ersetzen durch Leerzeichen oder '<br>' (oser sonstigen Zeichen) ist es nicht egal.

          Aber das wird schon wieder Philosophie...

          Harzliche Grüße vom Berg
          esst mehr http://www.harte-harzer.de

          Tom

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