String-Inhalt zwischen zwei Zeichenketten in Array Speichern

Splitterflug

Grünschnabel
Liebe PHP-Pros,

Ich möcht in meinem Blog ne Highlighting funktion einbauen damit ich Quellcode-Snippets schön formatiert und ge-highlightet präsentieren kann. das funktioniert auch alles wunderbar. allerdings muss ich die bereiche aus den Stringsholen, durch den Parser jagen und dann die stellen im string mit den geparsten ersetzen. Das hört sich jetzt furchtbar kompliziert an ist aber bei näherer betrachtung eigentlich recht simpel. ich weis sogar das es mit preg_match_all funktionieren sollte. Das ganze soll in etwa so wie hier im Forum aussehen also (ich hoffe das das jetzt ordentlich angezeicht wird EDIT: natürlich nich -.-)

/[php/] echo "das soll rausgefiltert und später geparst werden"; /[/php/]

ohne die jeweils 2 slashes -.-'

Ich muss also schauen dass ich alles zwischen diesen tags steht irgendwie rausgefiltert bekomme.

wäre nett wenn mir da mal einer unter die arme greift. wie sich das gehört hab ich mirs manual schon durchgelesen aber die syntax vermirrt mich irgendwie *G*

edit:

also damit bastel ich grade rum

PHP:
preg_match('/\[php\](.*)\[/php\]/', substr($zeichenkette), $treffer, PREG_PATTERN_ORDER);
print_r($treffer);
 
Zuletzt bearbeitet:
Hi,

du musst den Slash im End-Tag maskieren:

Code:
'/\[php\](.*)\[\/php\]/'

Und evtl. solltest du das Pattern greedy machen:

Code:
'/\[php\](.*?)\[\/php\]/'
 
erstmal danke und Wow so spät noch wach und schläft eigentlich keiner von euch?

greedy heisst was?

mhh irgendwie check ichs net ... ich glaub ich mus mal ne müze schlaf tanken -.-'
 
Zuletzt bearbeitet:
@Saftmeister: du meinst ungreedy. Hast es richtig im Code aber falsch geschrieben :-)

Hier mein Vorschlag:
Code:
!\[php\](.*)\[/php\]!Us

Ich habe ungreedy durch den Modifilator "U" erreicht. Auch der Modifikator "s" am Ende ist wichtig, weil PHP-Code ja meistens mehr als eine Zeile hat.
Ich habe außerdem mal die Delimiter auf ein Ausrufezeichen geändert. Der Slash kommt im Suchmuster vor. Mich stört sowas :-)
 
Zurück