Hallo,
ihr kennt es vielleicht aus dem Wiki. Hinter jeder Überschrift gibt es einen bearbeiten Button. Bearbeitet man eine Hauptüberschrift (== TEXT ==) wird der Text bis zur nächsten Hauptüberschrift im Edit Modus angezeigt. Bei kleinereren Überschriften (=== TEXT ===) wird nur der Text bis zur nächsten Überschrift, egal ob klein oder groß, angezeigt.
Das gleiche möchte ich gerne auch machen.
Leider funktioniert folgendes Script nicht wie gewünscht.
preg_match_all('/(?:|[^=])(===|==)[^=]+\1.*?\1/s', $text, $ary);
Result ist:
array(2) {
[0]=>
array(2) {
[0]=>
string(17) "== eins ==
=="
[1]=>
string(23) "
=== drei ===
ddd
==="
}
Problem dabei ist das Ende: \1 Wenn ich hier danach abfrage, ist es beim nächsten preg_match nicht mehr im String enthalten. - auch völlig klar
Als Ergebnis hätte ich gern ein Array:
[0] = "== eins ==
";
[1] = "=== zwei ===
anfang = ende = b = c = d = e = f";
[2] = "=== drei ===
ddd";
[3] = "=== vier ===
ddd";
Leider fällt mir nichts anderes ein wie man es ansonsten lösen könnte.
Jemand eine Idee?
Nachtrag:
Mußte das [ PHP ] wieder entfernen da die \ entfernt wurden.
ihr kennt es vielleicht aus dem Wiki. Hinter jeder Überschrift gibt es einen bearbeiten Button. Bearbeitet man eine Hauptüberschrift (== TEXT ==) wird der Text bis zur nächsten Hauptüberschrift im Edit Modus angezeigt. Bei kleinereren Überschriften (=== TEXT ===) wird nur der Text bis zur nächsten Überschrift, egal ob klein oder groß, angezeigt.
Das gleiche möchte ich gerne auch machen.
Leider funktioniert folgendes Script nicht wie gewünscht.
PHP-Code:
$text = '== eins ==
=== zwei ===
anfang = ende = b = c = d = e = f
=== drei ===
ddd
=== vier ===
ddd';
Result ist:
array(2) {
[0]=>
array(2) {
[0]=>
string(17) "== eins ==
=="
[1]=>
string(23) "
=== drei ===
ddd
==="
}
Problem dabei ist das Ende: \1 Wenn ich hier danach abfrage, ist es beim nächsten preg_match nicht mehr im String enthalten. - auch völlig klar
Als Ergebnis hätte ich gern ein Array:
[0] = "== eins ==
";
[1] = "=== zwei ===
anfang = ende = b = c = d = e = f";
[2] = "=== drei ===
ddd";
[3] = "=== vier ===
ddd";
Leider fällt mir nichts anderes ein wie man es ansonsten lösen könnte.
Jemand eine Idee?
Nachtrag:
Mußte das [ PHP ] wieder entfernen da die \ entfernt wurden.
Kommentar