preg_replace (Alles vor einen bestimmten Zeichen entfernen)

  • Hallo,

    Ich habe einen String z.B. Teststring [Inhalt]. Ich möchte nun alles bis zu dem [ Zeichen entfernen.

    Ansatz:

    PHP
    $element = "Teststring [Inhalt]";
    $string = preg_replace('#[[].*#','',$element); 
    
    
    echo $string; // Ausgabe => Teststring soll aber heißen => Inhalt]

    Entfernt alles nach einen [ Zeichen.
    Wie ist die genaue Syntax, wenn ich alles vor einem [ entfernen will?

    Würde mich freuen, wenn mir jemand Helfen könnte.

  • PHP
    $element = "Teststring [Inhalt]";
    $string = preg_replace('/.*[(.*)/','$1',$element); 
    
    
    echo $string;

    Aber bei dem würde ich dir eher die String-Funktionen empfehlen:

    PHP
    $element = "Teststring [Inhalt]";
    if(($pos = strpos($element, '[')) !== false)
            $string = substr($element, $pos + 1);
    else
            $string = $element;
    
    
    echo $string;

    Edit: Ungetestet! Bei Fehlern, bitte melden.

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Geht eigentlich noch einfacher:

    Code
    echo  [COLOR=#000000][COLOR=#FF8000][/COLOR][COLOR=#0000BB]strstr[/COLOR][COLOR=#007700]('[/COLOR][/COLOR][COLOR=#000000][COLOR=#DD0000]Teststring[Inhalt][/COLOR][/COLOR][COLOR=#000000][COLOR=#007700]'[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]'['[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]true[/COLOR][COLOR=#007700]);[/COLOR][/COLOR]

    oder

    Code
    echo  [COLOR=#000000][COLOR=#FF8000][/COLOR][COLOR=#0000BB]strstr[/COLOR][COLOR=#007700]('[/COLOR][/COLOR][COLOR=#000000][COLOR=#DD0000]Teststring[Inhalt][/COLOR][/COLOR][COLOR=#000000][COLOR=#007700]'[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]'['[/COLOR][COLOR=#007700][/COLOR][COLOR=#007700]);[/COLOR][/COLOR]
  • Und das schöne an dieser Lösung ist, dass man die sogar selber hinbekommen könnte, wenn man einfach mal die Doku lesen würde. :D