• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

String mit regulärem Ausdruck suchen

csigg

Neues Mitglied
Hallo,

ich hab eine eig, ganz einfache Frage, komm aber grad nicht dahinter warum das nicht funktioniert.
Ich habe einen String "Beliebiger Text #text1|text2 weiterer Text".

Nun würde ich gerne ein Array bekommen, in welchen #text1|text2# drin steht, bzw., wenn dies öfters vorkommen kann, eben dann mit mehreren Zeilen in dem Array.

Mein Versuch war nun folgender:
PHP:
        $bilder = preg_grep("#.*#", $frage, -1, PREG_SPLIT_NO_EMPTY);
        
        foreach($bilder as $bild)
             echo "<br />".$bild;

Meiner Meinung nach hätte da jetzt #text1|text2# ausgegeben werden müssen. Leider wird garnix ausgegeben.
 
Ich erkenne bei deinem Beispielstring leider keine Logik. Meinst du nicht eher als Beispiel das hier:
"Beliebiger Text #text1|text2# weiterer Text"?

In dem Fall:
PHP:
$matches = array();
preg_match_all('/#.*?#/', "Beliebiger Text #text1|text2# weiterer Text", $matches);
var_dump($matches);
 
Ich hatte mich oben verschrieben:
"Beliebiger Text #text1|text2# weiterer Text".

Der Hintergrund ist der:
Der User soll in einem Texteingabefeld Bilder hinzufügen können. Da er kein HTML lernen soll, und ich die Bilder über eine Thickbox einblenen will, geht auch kein Editor.
Die Idee war also, dass er einfach #verlinkter text|url zu bild# eingibt, und ich dann die Teile in ein Array lies, das HTML entsprechend zusammenbau und dann mit search/replace funktion ersetze.
 
Ich habs jetzt mal mit einem anderen Zeichen versucht, war aber leider auch erfolglos...
PHP:
$bilder = preg_grep("{.*}", $frage, -1, PREG_SPLIT_NO_EMPTY);
 
Zurück
Oben