Enterzeichen entfernen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Enterzeichen entfernen

    Hallo,

    vielleicht kann mir hier jemand helfen. Ziel ist es, den String, der durch das Formular in die Variable $text geschrieben wird, auf Enterzeichen zu überprüfen und überflüssige \n löscht. Sind mehr als drei Enterzeichen enthalten, werden zwei Enterzeichen durch eines ersetzt. Im Endeffekt bleiben nur zwei übrig.

    Ohne Formular klappt das hervorragend:


    $text ="Das ist ein Test mit

    Umbrüchen";

    function tworeturns($text) {
    while (strstr($text,"\n\n\n")) {
    $text = str_replace("\n\n","\n",$text);
    }
    return $text;
    }

    echo "Umbrüche gesamt: ".substr_count($text,"\n")."<br><br>";
    $text = tworeturns($text);
    echo nl2br($text);

    Nur mit Formular will das einfach nicht funktionieren:


    echo"
    <form name=test method=post action=\"test.php\">
    <table>
    <tr>
    <td>
    <textarea name=text rows=5 cols=40>$text</textarea>
    </td>
    </tr>
    <td>
    <input type=submit value='Nachricht abschicken!'>
    </td>
    </tr>
    </table>
    </form>
    ";

    function tworeturns($text) {
    while (strstr($text,"\n\n\n")) {
    $text = str_replace("\n\n","\n",$text);
    }
    return $text;
    }


    echo "Umbrüche gesamt: ".substr_count($text,"\n")."<br><br>";

    $text = tworeturns($text);

    echo nl2br($text);

    Hoffe, dass sich jemand mit dem Problem auseinandersetzen mag...

    Beste Grüße,
    Euer Braini

  • #2
    Unter Windows werden Zeilenumbrüche mit \r\n markiert, unter Mac mit \n\r.
    Und was nu in dem Feld drin steht, hängt vom Betriebssystem des Besuchers der Seite ab.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Code:
      <?
      echo " 
      	<form name=test method=post action=\"nl2br.php\"> 
      		<textarea name=text rows=5 cols=40>$text</textarea> 
      		<br>
      		<input type=submit value='Nachricht abschicken!'> 
      	</form> 
      "; 
      
      function tworeturns($text) {
      	while (strstr($text,"\n\r\n\r\n\r")) {
      		$text = str_replace("\n\r\n\r\n\r","\n\r",$text); 
      	} 
      	return $text; 
      }
       
      echo "Aus:<hr>".nl2br($text)."<hr>"; 
      echo "Mach:<hr>".nl2br(tworeturns($text))."<hr>"; 
      ?>

      Kommentar


      • #4
        Original geschrieben von Titus
        unter Mac mit \n\r.
        *räusper* War's nicht nur \r ?

        CAT Music Files

        Kommentar


        • #5
          mag sein, aber irgendwo gibt´s auch \n\r

          vielleicht ne einfache Lösung: vor der Suche nach vielfachen \n erst alle \r\n, dann die \n\r und zum Schluß einsame \r durch \n ersetzen:
          $text = str_replace("\r", "\n", str_replace("\n\r", "\n", str_replace("\r\n", "\n", $text)));

          [Editiert von Titus am 06-03-2002 um 21:40]
          mein Sport: mein Frühstück: meine Arbeit:

          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

          Kommentar

          Lädt...
          X