Gå til innhold

noen spm om str_replace


Anbefalte innlegg

Jeg tenkte å bruke str_replace til å replace tilfeller av å med &aering; ø med ø osv. men er ikke sikker på hvordan jeg får dette til i et array så jeg slipper å skrive det slik

 

$filnavn = str_replace('å', 'å', $filnavn);

$filnavn = str_replace('ø', 'ø', $filnavn);

$filnavn = str_replace('', '_', $filnavn);

 

osv.

 

Noen som vet hvordan dette kan gjøres?

Lenke til kommentar
Videoannonse
Annonse

<?php

$finn = array(
"å",
"Å",
"ø",
"Ø",
"æ",
"Æ",
);

$erstatt = array(
"å",
"Å",
"ø",
"Ø",
"æ",
"Æ",
);

$filnavn = str_replace($find, $replace, $filnavn);

?>

Sånn ca? Er forresten usikker på æ, men jeg tror det er slik æ skal skrives.

PHP.net: str_replace er en fin båt :)

En fin ting å huske på er å skrive http://php.net/funksjonsnavnet

 

EDIT: Dæng, hele fem minutter for sen :hrm:

Endret av PT
Lenke til kommentar

hmm...ser bra ut, men jeg får ikke den siste til å fungere...den som skal erstatte mellomrom med _

 

$finn = array(

"å",

"Å",

"ø",

"Ø",

"æ",

"Æ",

"",

);

 

$erstatt = array(

"å",

"Å",

"ø",

"Ø",

"æ",

"Æ",

"_",

);

Lenke til kommentar

$finn = array(
"å",
"Å",
"ø",
"Ø",
"æ",
"Æ",
" ", // Her la jeg til et mellomrom
);

$erstatt = array(
"å",
"Å",
"ø",
"Ø",
"æ",
"Æ",
"_",
);

Sånn må det vel bli. Kan ikke erstatte ingenting med underscore ;)

Lenke til kommentar

For å konvertere norske bokstaver til gjeldende HTML-entity, kan man bruke PCRE (Perl Compatible Regular Expressions) kombinert med funksjonen htmlentities.

 

Mønsteret '[æ|ø|å]'si består av én gruppe. Denne skal matche æ, ø eller å. På slutten har jeg lagt til si slik at teksten blir behandlet som en linje og uavhengig av case.

 

Har laget en egen callbackfunksjon som returnerer den matchende bokstavens HTML-entity. Dermed trenger man ikke kjennskap til de forskjellige entities, og mønsteret kan enkelt utvides til flere bokstaver. :thumbup:

 

<?php
echo nor_entities("Ærling, Østen og Åse. ærling, østen og åse.");

//Konverterer Æ,Ø,Å (uavhengig av case) til htmlentity vha PCRE og htmlentities 
function nor_entities($tekst){
   return preg_replace_callback("'[æ|ø|å]'si",htmlentities_cb,$tekst);
}
function htmlentities_cb($array){return htmlentities($array[0]);}
?>

Eksempelet gir følgende output

Ærling, Østen og Åse. ærling, østen og åse.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...