Ik heb een probleempje;
Lever de niet verwachte/gewenste output; namelijk:
Mijn vraag is; hoe kan ik die "\1" omzetten naar een gewone string zodat ik er else/if statement op los kan laten?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| <? function parse($str) { return ereg_replace("\\[([ ._a-zA-Z0-9-]*)\]",parseValue("\\1"),$str); } function parseValue($str) { $waarde = "mod"; if ($str == $waarde) { return "<b>'$str' is gelijk aan '$waarde'</b>"; } else { return "<b>'$str' is niet gelijk aan '$waarde'</b>"; } } $waarde = "VOOR [mod] MIDDEN [mod] ACHTER"; echo parse($waarde); ?> |
Lever de niet verwachte/gewenste output; namelijk:
Als ik een var_dump maak van de string blijkt dat de waarde die aan parseValue wordt doorgegeven niet "mod" is maar "\1"; een verwijzing naar de waarde die de reguliere expressie teruggaf. Het rare is echter dat die functie bij het returnen wel de juiste value teruggeeft.VOOR 'mod' is niet gelijk aan 'mod' MIDDEN 'mod' is niet gelijk aan 'mod' ACHTER
Mijn vraag is; hoe kan ik die "\1" omzetten naar een gewone string zodat ik er else/if statement op los kan laten?