PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Variablen aus Regex in preg_replace einer Funktion übergeben? (https://www.php-resource.de/forum/php-developer-forum/75636-variablen-aus-regex-in-preg_replace-einer-funktion-uebergeben.html)

JHansen 10-09-2006 22:05

Variablen aus Regex in preg_replace einer Funktion übergeben?
 
Hi, ich will ein erweitertes BBCode-Mod für Phorum schreiben, das auch Listen und Tabellen ermöglicht, also sowas wie [ list]
[ *]Punkt 1
[/ list] . Ich habe auch schon ziemlich genau im Kopf, wie das ganze funktionieren soll. Allerdings scheitere ich an einer Kleinigkeit:

'Eindimensionale' BBCodes wie [ i]Kursivtext[ /i] oder so ist ja überhaupt kein Problem, funktioniert ja so:
PHP-Code:

$body preg_replace("/\[i\](.+?)\[\/i\]/is","<i>$1</i>",$body); 

Bei 'mehrdimensionalen' Tags wie Listen kann ich das nicht wirklich mit einem preg_replace erledigen. also dachte ich ich packe das Parsen des Zeugs zwischen den beiden List-Tags in eine Funktion, würde dann allerdings so aussehen:
PHP-Code:

$body preg_replace("/\[list\](.+?)\[\/list\]/is","<ul>".parse_list($1)."</ul>",$body);

function 
parse_list($text) {
     
//do something with $text
     
return $text


Funktioniert nur irgendwie nicht, weil er die Variable $1 nicht kennt. Gibt es irgendeine Möglichkeit, wie ich die in dem Regex erzeugte Variable $1 einer Funktion übergebe?

penizillin 10-09-2006 22:12

preg_replace() und Modifier e

Slava 10-09-2006 23:21

Zitat:

Original geschrieben von penizillin
preg_replace() und Modifier e
Modifier e ist mir auch viel lieber als preg-replace-callback.
http://de2.php.net/manual/de/functio...e-callback.php

JHansen 11-09-2006 09:57

liest sich schon mal sehr gut und schlüssig :) danke!
Werds austesten und mich nochmal melden.

combie 11-09-2006 11:56

1. Warum das Rad neu erfinden
2. in der (sehr guten) Beschreibung steht, warum man mit regulären Ausdrücken nicht weit kommt
http://www.christian-seiler.de/proje...ode/index.html

JHansen 13-09-2006 12:56

Ich bleibe erstmal bei preg_replace. Liegt daran dass schon ein BBCode-Modul existiert dass ich erstmal nur um das, was mir fehlt, erweitern will, und das sind halt Listen und Tabellen.

Trotzdem sieht die BBCode-Klasse von Christian Seiler nicht uninteressant aus. Eröffnet einen ganz neue Möglichkeiten. :) Also kann schon sein, dass ich da wieder drauf zurück komme, wenn ich mehr Zeit und Muße hab.


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:42 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG