[PHP] ereg_replace resultaat gebruiken in functie

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoe kan ik het resultaat van een ereg_replace gebruiken in een functie die ik binnen de ereg-replace wil aanroepen?

Ik ben bezig met een automatische vertaling van een string om meerdere talen binnen mijn eigen cms makkelijk te ondersteunen. Nu wil ik eigenlijk het volgende doen:

PHP:
1
$subject = ereg_replace("{lang\{\'([a-zA-Z0-9_]*)\'}}", translatePage("\\1"), $subject);



Ik wil alle {lang{'willekeurige_naam'}} als translatePage('willekeurige_naam'); laten verwerken.
De string die translatePage echter ontvangt is "\\1" en niet "willekeurige_naam".

Hoe kan ik dit oplossen?

Acties:
  • 0 Henk 'm!

  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08 14:36
ereg_replace ondersteunt geen callback functies. Met preg_replace_callback kan het wel.

| Toen / Nu


Acties:
  • 0 Henk 'm!

  • Raynman
  • Registratie: Augustus 2004
  • Nu online
Je geeft zo de return waarde van translatePage aan ereg_replace mee. translatePage wordt dus uitgevoerd met '\\1' als argument, waarna het resultaat in de plaats van het gematchte komt.

Je kunt kijken naar preg_replace_callback, maar dan moet translatePage een array accepteren en op de juiste manier gebruiken. Misschien wil je dan liever preg_replace met de 'e'-modifier gebruiken.