nach preg_replace() Werte in Function nutzen

Sebigf

Erfahrenes Mitglied
Hallo zusammen...

Ich habe eine function() gebaut mit der es möglich ist, bestimmte "Platzhalter" durch z.b. einen Screenshot zu ersetzen.

Nun habe ich probiert, die durch preg_replace entstandenen Werte wieder zu verarbeiten.

Hier der Code:

Code:
preg_replace("/\<--\|(.*?)\|--BILD(.*?)\-->/si", insert_image("\\2","\\1"), nl2br($texte['content']))

Nur leider kann ich \\1 und \\2 nicht verwenden, bzw. kommt kein Wert bei der func. an.

Kann mir da jemand helfen ?

Danke
 
Hallo,
wenn du die Ergebnisse haben willst, dann solltest du die [phpf]preg_match[/phpf] Funktion verwenden.

mfg
forsterm
 
Hallo und danke für deine Antwort.

Ich weis nicht, ob du genau verstanden hast, was ich hier brauche.
Es geht mir nicht um die "Anzahl" der übereinstimmungen....

durch (.*?) enstehen ja werte -> \\1 z.b....die möchte ich hier verwenden.

Aber ich schaue mir die ...match nochmal an.
 
... habe ich vergessen zu sagen.

Es gibt je nachdem auch mehrere Werte im String, die gefunden und durchlaufen werden müssen.
 
Probier mal Folgendes:
PHP:
preg_replace('/<--\|(.*?)\|--BILD(.*?)-->/si', insert_image('\2', '\1'), nl2br($texte['content']))
 
Hallo Gumbo und thx für den Code.

Leider funktioniert es auch damit nicht...
Die Funktionen ansicht funktionieren alle, wenn ich diese mit den einfachen Werten fülle, aber sobald ich die Werte aus der preg_replace() entnehmen möchte, bekomme ich leider kein Ergebnis auf die Reihe.
 
Ich denke du meinst die (.*?) Sachen, oder?

so ein Wert sieht wie folgt aus: <--|left|--BILD1153-->

left <-- Align-Wert
1153 <-- BildID

Es funktioniert aber auch richtig, da er die Sachen ja auch an der "mixed Ersatz" einsetzt.
Theoretisch müsste es gehen, nur weben sobald die \2 usw genutzt werden sollen, sind sie leer.
 
Dann ändere das Muster mal wie folgt:
Code:
<--(?:\|(left|right)\|--)?BILD([1-9][0-9]*)-->
Dies ermöglicht Tags wie <--|left|--BILDN-->, <--|right|--BILDN--> oder <--BILDN-->.
 
Zurück