Teilzeichenkette bei ereg_replace an funktion übergeben

Ensign

Mitglied
Hi alle miteinander!

Mittlerweile bin ich schon verzweifelt, da ich einfach keine Lösung finden kann.

Ich programmiere gerade eine Website, bei der man in die Textfelder einer Datenbank auch Links zu Gallerybildern einfügen können soll. Diese Einfügen der Bilder soll im Schema [gal="112"] funktionieren. Die "112" steht für die id des Bilde, das aus der Datenbank gegriffen wird. Jetzt soll dieser "[gal="id"]-Code durch ereg_replace ausgelesen werden und die id an eine Funktion übergeben, die dann den Titel aus der Datenbank holt und ein Thumbnail anzeigt. Ich hab das ganze soweit programmiert:

PHP:
$data[text]=ereg_replace("\[GAL=\"([^\[]+)\"\]",repl_getgalpic("\\1"),"$data[text]");

dieses "\\1" ist ja der Teil, der nach dem [gal= in den Anführungszeichen steht. Leider funktioniert es nicht diese ID an die Funktion zu übergeben, weil sie irgendwie nicht erhalten bleibt.
 
Probier mal Folgendes:
PHP:
<?php

	…
	$data['text'] = preg_replace('/\[gal="([^\[]+)"\]/i', repl_getgalpic('\\1'), $data['text']);
	…

?>
 
Nein, geht leider auch nicht. Wenn ich in der funktion repl_getgalpic die $id anzeigen lasse, ist es nur \1. Aber vielen Dank für die Antwort! :)
 
Zurück