Thomas: Zeilenumbrüche zu Beginn einer Variable löschen

Hallo!

Ich habe einen String:

$text="<br> <br><br>  <br> und hier ist der text <br> und noch mehr";

Bei diesem String sollen die <br> und die Leerzeichen vor dem eigentlichen Text gelöscht werden, sodass nur noch

$text="und hier ist der text <br> und noch mehr";

übrig bleibt. Leerzeichen und Zeilenumbrüche im Text sollen erhalten bleiben.

Für Ideen, wie ich das umsetzen kann, bin ich dankbar!

  1. Hello,

    $text="<br> <br><br>  <br> und hier ist der text <br> und noch mehr";

    solange (Text = ' ' oder Text = '<br>')
        lösche dieses Vorkommen im Text, also gebe nur den rechten Teil des Strings wieder

    Dafür gibt es bei PHP spezielle Stringfunktionen
    http://de3.php.net/manual/de/ref.strings.php oder
    http://de3.php.net/manual/de/ref.mbstring.php

    beachte die verwendete Codierung.

    Harzliche Grüße vom Berg
    http://bergpost.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

    1. Das man alle <br> und Leerzeichen mit z.B. ereg_replace ersetzen kann, ist mir bewusst, ich weiß aber nicht, wie ich es schaffe, nur vor dem Text Leerzeichen und <br> zu entfernen!

      1. n'abend,

        Das man alle <br> und Leerzeichen mit z.B. ereg_replace ersetzen kann, ist mir bewusst, ich weiß aber nicht, wie ich es schaffe, nur vor dem Text Leerzeichen und <br> zu entfernen!

        ereg_replace ist POSIX - ich persönlich bevorzuge PCRE und zeige deshalb ein preg_replace() Beispiel:

        $string=" <br> hallo";  
        $tollerString = preg_replace( "/^(\s|<br>)+/i", "", $string);
        

        Aufgebröselt (Pattern-Syntax, Modifier):

        / ->
        ^ -> Anfang des Strings
        ( -> öffne Gruppierung
        \s -> jede Art von space (auch Tabs, Zeilenumbrüche, etc.)
        | -> logisches ODER
        <br> -> Zeichenkette, die exakt so auftauchen muss <br > wird nicht erkannt!
        ) -> Gruppierung schliessen

        • -> vorhergehende Gruppe muss mindestens 1x auftauchen, kann aber beliebig oft wiederholt werden (solange dies "am Stück" passiert)
          /i -> modifier: case-insensitive, sodass auch <BR> erkannt wird

        Wenn du neben <br> auch <br /> erkennen willst, ist das unmerklich schwieriger:

        $string=" <br> hallo";  
        $tollerString = preg_replace( "/^(\s|<br ?\/?>)+/i", "", $string);
        

        da tauch / drin auf, weil der Slash aus seiner eigentlichen Bedeutung gerissen werden muss und als "Literal Character" angesehen werden soll - also Als Slash. Die beiden Fragezeichen bewirken, dass das jeweils vorhergehende Zeichen auftauchen kann, aber nicht muss. Dadurch wird erkannt: <br> <br > <br /> <br/>

        weiterhin schönen abend...

        --
        Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
        sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|