Toon posts:

[PHP] Klein preg_replace foutje

Pagina: 1
Acties:

Verwijderd

Topicstarter
Momenteel ben ik (alweer) bezig met een forum, momenteel ben ik bezig met de template engine van het ding..Bij het onderdeel addons..
PHP:
1
<?function functie($text,$text2=''){ return ":: $text <b>$text2</b>::"; }preg_replace ("|\\[addon:(.*)(:(.*))?\]|Usi", functie('\\1','\\2'), "[addon:naam:parameter]<br><br>[addon:geen_parameter]");?>

De volgende "addon tags" zijn toegestaan:
[addon:xxx:yyy] en [addon:xxx] Momenteel matched en replaced hij ze wel maar bij twee paramaters neemt hij de dubbele punt mee in zen tweede uitvoer (\\2)

Dit poept ie uit:
code:
1
2
3
:: naam <b>:parameter</b>::
<br><br>
:: geen_parameter <b></b>::

Zoals je kunt zien staat bij de eerste uitvoer er nogsteeds een dubbele punt voor :paramater.. iemand een idee?

  • Grum
  • Registratie: Juni 2001
  • Niet online
Gebruik ipv dit:
code:
1
"|\\[addon:(.*)(:(.*))?\]|Usi"

dit:
code:
1
"|\\[addon:(.*)(?::(.*))?\]|Usie"

Btw .* is niet helemaal netjes hier ook al gebruik je de de U modifier.

Ik denk dat je et beste dit kan gebruiken:
code:
1
'!\\[addon:([^:\]]+)(?::([^\]]+)?\]!ie'

Vergeet vooral de e-modifier niet :D

Verwijderd

Topicstarter
Op dinsdag 09 april 2002 20:01 schreef Grum het volgende:
code:
1
'!\\[addon:([^:\]]+)(?::([^\]]+)?\]!ie'
Thnx grum kleine bugfix
code:
1
'!\\[addon:([^:\]]+)(?::([^\]]+))?\]!si'

je was een haakje vergeten ;)

  • Grum
  • Registratie: Juni 2001
  • Niet online
Oops :+