SebastianJu: preg_match - Problem

Hallo,

ich habe ein Template welches verschiedene Formularseiten enthält. Jede Formularseite wird eingeleitet durch:
[Seite1]1 - Start: Was will ich verändern? Und Warum?[/Seite1]

Also ein Code mit dem ich die Seite herausfinden kann und dessen Überschrift.

Die Überschriften herausfiltern funktioniert soweit schon aber ich brauche jetzt auch den dazugehörigen Content. Und der befindet sich im Fall der ersten Seite zwischen:
[Seite1]1 - Start: Was will ich verändern? Und Warum?[/Seite1]
und
[Seite2]2 - Status: Wie sieht mein Garten heute aus und was ist bislang möglich?[/Seite2]

Um den Bereich dazwischen herauszufinden habe ich folgendes preg_match erstellt.

  
preg_match('/\[\/Seite[0]*'.$page.'\].*\[Seite[0]*'.($page+1).'\]/',$catalogfull,$array);  
    printarray($array);

$page enthält die aktuell angezeigte Seite. Enhält also 1. Es soll also alles zwischen [/Seite1] und [Seite2] zurückgegeben werden. Bzw werden die Marker erstmal auch mit angegeben.

Problem ist nun dass preg_match offenbar haltmacht wenn es einen Zeilenumbruch findet. Zumindest ist das Array leer. Den Content in $catalogfull hatte ich vorher mit nl2br umgewandelt. Aber auch ohne das ist es das selbe Ergebnis.

Also habe ich folgendes ausprobiert:

preg_match('/\[\/Seite[0]*'.$page.'\].*/',$catalogfull,$array);  
    printarray($array);

Damit gibt er mir:

Array
(
    [0] => [/Seite1]

)

aus. Samt <br/>.

Es scheint also so zu sein dass preg_match einfach haltmacht bei Zeilenumbrüchen oder? Ich habe aber nichts dazu gefunden dass das so wäre bzw wie man das umgeht...

Weiß jemand wo das Problem ist? Ist der Punkt und Stern nicht fähig den gesamten Rest mitzunehmen? Welches Zeichen kann das?

  1. Ok, hab die Lösung. Offenbar kann Punkt teilweise wirklich einen Zeilenumbruch meinen oder auch nicht.
    Wenn man hinter das letzte / ein s schreibt klappt es... :)