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

Beitrag lesen

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:|