Kasper Johansen <kasper@llsweb.dk> wrote:
> Hvis vi tager udgangspunkt i dit eksempel:
>
> $text = preg_replace("/\[replay:\s?\d+\]/", $title, $text);
>
> I dette skal jeg altså bruge nummere som kommer efter [replay: nr].
> Dette nr er jo som sagt id til noget i en database. Dertil ville jeg
> så bruge en funktion til at returnere denne titel ved hjælp at mit id.
Ah - det havde jeg overset. Så tror jeg, du er nødt til at parse udtrykket
flere gange. Først for at finde de de udtryk, der skal erstattes og de
id'er, du skal bruge, og derefter for at erstatte udtrykkene med tilsvarende
titler hentet fra databasen.
Det kunne være noget ligende:
if (preg_match_all("/\[replay:\s?(\d+)\]/i", $text, $matches)) {
$toBeReplaced = $matches[0];
$ids = $matches[1];
foreach($ids as $key => $id) {
$title = GetTitle($id);
$text = str_replace($toBeReplaced[$key], $title, $text);
}
}
--
Med venlig hilsen / Regards
Kasper Garnæs
http://kasper.garnaes.dk