phpbar.de logo

Mailinglisten-Archive

Re: [php] Problem mit regulärem Ausdruck

Re: [php] Problem mit regulärem Ausdruck

Peter Linzenkirchner peter at linzenkirchner.de
Son Okt 30 15:15:34 CET 2005


Hallo Jens,

Am 30. Okt 2005 um 13:39 schrieb Jens Giessmann:

>
> Du willst also nach den Ersetzungen folgenden String haben:
>
> beliebiger Text
> <ul>
> <li>zeile1</li>
> <li>zeile2</li>
> <li>zeile3</li>
> </ul>
> beliebiger Text
>
> Korrekt?

Ja, korrekt.

> Das kannst du mit preg_replace_callback() machen, in dem du der
> Callback-Funktion die Zeilen der Items uebergibst und dann in der
> Funktion mit preg_replace() die <li> Tags einfuegst.

Kapiere - auf die Idee, nach einer Callbackfunktion zu suchen, bin  
ich nicht gekommen.

> // Bekommt in $treffer[1] den Teil des Textes mit den Item-Zeilen
> function list_callback($treffer) {
>
>   // Jetzt in dem Teil der Item-Zeilen die <li> Tags pro Zeile
>   // einfuegen
>   $items = preg_replace('#^(.*)$#m', '<li>\\1</li>', $treffer[1]);
>
>   // Noch die <ul> Tags drumrum und gut ist.
>   return "<ul>\n" . $items . "\n</ul>";
>
> }
>
> // Pattern um die Item-Zeilen zu finden
> $pattern = '#\[Liste\]\n(.*)\n\[\/Liste\]#isU';
>
> $text_new = preg_replace_callback($pattern, 'list_callback', $text);
>
> echo $text_new;

Schön! Das werde ich gleich ausprobieren, damit sollte ich eigentlich  
jetzt klarkommen. Vielen Dank!

Viele Grüße
Peter


-- 
-----------------------------------------------
Peter Linzenkirchner
Lisardo Multimedia GmbH
http://www.lisardo.biz/
Herrenbachstraße 19, 86161 Augsburg
Tel. ++49-821-150565, Fax ++49-821-150595
-----------------------------------------------



php::bar PHP Wiki   -   Listenarchive