Toon posts:

[php] preg_replace

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi! ik vond hier een manier om zo'n forumberichtje te replacen.

ik ben hier mee aan het werk, maar loop nu tegen het volgende probleem:
code:
1
$string = preg_replace("/(\[icon id=)(.*)(\])/U","[img]\"gfx/emoticons/".plaatje(\\2)."\"[/img]", $string);

plaatje is de naam van een functie, en ik wil een waarde meesturen. ( de waarde van \\2 ). Hier gaat het dus fout :(Dit is het origineel..
code:
1
$string = preg_replace("/(\\[img\])(.*)(\\[\/img\])/U","<img src=\"\\2\" border=\"0

plaatje zet het nummer wat ik meestuur om in een locatie wat bij dat id hoort in de database.

[icon id=8] moet dus bijvoorbeeld worden vervangen door: [img]"gfx/emoticons/bla.gif"[/img]

Thanx!

Verwijderd

Topicstarter
code:
1
$string = preg_replace("/(\[icon id=)(.*)(\])/U","[img]\"gfx/emoticons/.plaatje(\\2).\"[/img]", $string);

Als ik deze string meestuur, dan wordt de locatie van het plaatje: http://213.51.151.22/svk/www01/forum/gfx/emoticons/.plaatje(5).

bijna dus... nu moet hij nog de functie plaatje met de waarde 5 gaan runnen...
wat doe ik fout?

Verwijderd

Ook jij moet de /e modifier gebruiken. Daarmee kun je functie binnen je regexp gebruiken. Ik heb zo niet direct documentatie voorhanden. Het moet zoiets worden:
PHP:
1
2
3
<?
$string = preg_replace("/(\[icon id=)(.*)(\])/eU","'[img]\"gfx/emoticons/'.plaatje('\\2').'\"[/img]'", $string);
?>

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
je moet iig de e-modifier gebruiken om de plaatje()-functie uitgevoerd te krijgen, dus:
code:
1
2
"/(\[icon id=)(.*)(\])/Ue"
                ^

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
en Tomato zou waarschijnlijk zeggen dat dit sneller is:
code:
1
"/\\[icon id=([0-9]+)\]/Ue"

:)

(moet je natuurlijk plaatje(\\1) gebruiken)

Verwijderd

Topicstarter
Hey thanx boys!

en weer heeft /me
wat geleerd :)
Pagina: 1