preg_replace æ,ø,å går galt

Tags:    php

Hej alle,

Jeg vil erstatte de danske bogstaver, såfremt de indtastes i formen:
æ ø å med ae oe aa. - Samt mellemrum med -

Jeg tænkte jeg ville benytte preg_replace til det. men jeg får fejl.

Hvis jeg indtaster ordet "Bælter" og løber det igennem nedenstående, så korter det hele strengen af, og jeg har kun "B" tilbage til at blive indsat i DB.

Her er mit preg_replace:
Fold kodeboks ind/udPHP kode 


Hvis $vare_gruppe_url = "Bælter", ja så bliver jeg efterladt med kun "B".

Er der en der kan forklare mig hvorfor, og hjælpe mig med det?

Mvh, Jan Klemmensen



Indlæg senest redigeret d. 05.02.2012 22:37 af Bruger #16555
6 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Er der nogen særlig grund til du bruger preg_replace istedet for den hurtigere str_replace?

http://php.net/manual/en/function.str-replace.php



Ja, er enig str_replace burde gøre arbejdet :P



Nej det er der ikke, jeg vidste ikke at den var hurtigere - Men nu virker det dog i det mindste - så må jeg jo skifte over til str_replace :-) Tak for rådet om ikke andet!

Mvh,
Jan



str_replace er hurtigere, men den er også meget mere simpel.

Tommelfinger regler for replace funktioner:
ereg_replace - brug den aldrig!

str_replace eller preg_replace - brug kun preg_replace hvis du skal bruge 5 eller flere str_replace for at opnå samme resultat.

I dit tilfælde vil jeg anbefale at du bruger str_replace, selvom det ligger i grænselandet... Du skal jo lave 4 gennemløbninger af strengen for at erstatte æ, ø, å og mellemrum - tilgengæld, så er strengen jo ikke vitterligt langt, og så er straffen for ekstra gennemløb jo mindre. :-)





Jeg tror jeg har nævnt det før, men husk at stemme, Jan :)

Mvh.

Kasper (TSW)



Fold kodeboks ind/udPHP kode 


Noget lign. det her?



Indlæg senest redigeret d. 07.02.2012 09:34 af Bruger #16025
t