Leerzeilen entfernen

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

  • Leerzeilen entfernen

    hi all ich bins mal wieder

    ich hab ein script gemacht mit dem man einen inhalt in die db speichern kann. der inhalt wird so gespeichert das man leerzeilen machen kann. ist es möglich die leerzeilen zu bregenzen? also wenn jemand etwas reinschreibt und nacheinander 10 leerzeilen macht, diese auf zwei leerzeilen zu reduzieren?

    danke schonmal

  • #2
    preg_replace()

    Kommentar


    • #3
      hmm aber wie kann ich denn da festlegen das er zeilen löscht wenn es mehr als 2 leerzeilen nacheinander hat?? sry ich raff das ned so. mein name sagt ja alles

      OffTopic:
      mein 100ster post

      Kommentar


      • #4
        naja musst halt überprüfen ob mehrere \n's hinternander da sind ... dafür brauchst du reguläre ausdrücke und damit preg_replace() .... eigentlich war tobiaz antwort eindeutig wenn auch kurz

        mfG
        CMS-X Medien- und Modelagentur

        Kommentar


        • #5
          Das reduziert die Sache auf maximale eine Leezeile:
          PHP-Code:
          $str preg_replace("/(.*?)\n\n/","\\\\1\n",$str); 
          Und das reduziert die Sache auf maximale zwei Leezeilen:
          PHP-Code:
          $str preg_replace("/(.*?)(\n{3})(\n*)/","\\\\1\\\\2",$str); 
          christoph
          Zuletzt geändert von cst; 11.02.2004, 09:09.
          Ich denke, also bin ich.
          Manche sind trotzdem!

          Kommentar


          • #6
            Muss zugeben, die Antwort war so kurz, weil ich mir nicht noch groß gedanken über das Pattern machen wollte.

            Möchte aber noch erwähnen, dass wir ein gutes Tutorial haben, mit dem ihr die geposteten Expressions gut nachvollziehen könnt...

            Kommentar


            • #7
              Original geschrieben von cst
              Das reduziert die Sache auf maximale eine Leezeile:
              PHP-Code:
              $str preg_replace("/(.*?)\n\n/","\\\\1\n",$str); 
              Und das reduziert die Sache auf maximale zwei Leezeilen:
              PHP-Code:
              $str preg_replace("/(.*?)(\n{3})(\n*)/","\\\\1\\\\2",$str); 
              christoph
              funktioniert beides nicht.

              Kommentar


              • #8
                PHP-Code:
                $str preg_replace("/\n{3,}/","\n\n",$str); 
                Offe

                Kommentar


                • #9
                  ich hab grad mal nachgeguckt wie die leerzeilen ausgegeben werden. mit "/n" geht das ned denn es wird "<br />" ausgegeben. wie muss ich denn jetzt den befehl ändern?
                  ich habs mal so versucht aber es funzt nicht:
                  PHP-Code:
                  $str preg_replace("/<br />{3,}/","<br /><br />",$str); 

                  Kommentar


                  • #10
                    hmm,

                    du wirst doch nicht den text mit den <br /> in der db speichern?

                    aus / wird \/, zwischen den delimitern
                    Die Zeit hat ihre Kinder längst gefressen

                    Kommentar


                    • #11
                      $str = preg_replace("\/<br />{3,}\/","<br /><br />",$str);

                      so? funzt ned.

                      Kommentar


                      • #12
                        argh!

                        zwischen den delimitern

                        du mußt doch metacharaktere und delimiter-zeichen, wenn sie nicht delimiter sein solln, slashen
                        Die Zeit hat ihre Kinder längst gefressen

                        Kommentar


                        • #13
                          $str = preg_replace("/<br \/>{3,}/","<br /><br />",$str);

                          so sollte es doch stimmen oder mach ich schon wieder was falsch?

                          Kommentar


                          • #14
                            sieht doch schön aus

                            gehts?

                            btw: wieso trägst du <br />s in die db ein?
                            Die Zeit hat ihre Kinder längst gefressen

                            Kommentar


                            • #15
                              also bevor der text in der db gespeichert wird, wird noch dieser befehl ausgeführt: htmlentities();

                              in der db sind die leerzeilen dann einfach leerzeilen

                              dann wird der inhalt mit nl2br(); ausgelesen. dann gibts diese <br />. ich hab preg_replace(); erst nach dem nl2br(); ausgeführt aber es funzt nicht.

                              Kommentar

                              Lädt...
                              X