G2Petter Skrevet 13. januar 2008 Skrevet 13. januar 2008 (endret) Jeg har en database der jeg vil at alle radene for en gitt kolonne (poststed) skal ha små botstaver og stor førstebokstav. Problemet er at ucfirst ikke skjønner hvordan den skal lage små bokstaver av ÆØÅ. Her er den relevante delen av scriptet: $query = "SELECT * FROM ad_postkode"; $result = mysql_query($query); while ($row = mysql_fetch_assoc($result)) { $poststed = ucfirst(strtolower($row['poststed'])); $postnummer = $row['postnummer']; $temp_query = "UPDATE ad_postkode SET poststed = '$poststed' WHERE postnummer = '$postnummer'"; mysql_query($temp_query); } Er det noen som har noen tips til hvordan jeg kan fikse dette? Edit: både scriptet og databasen er lagret i UTF-8 Endret 13. januar 2008 av G2Petter
Thomas. Skrevet 13. januar 2008 Skrevet 13. januar 2008 (endret) Har du poblemer i databasen ? Gjør dete: Skift tegnsettet til unicode-utf-8 Er feilen på sden ? prøv denne: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> Skjøønte ikke helt poblemet ditt Her er det no utf8 greier, se om du finner noe her: http://no2.php.net/manual/en/function.ucfirst.php#63799 Endret 13. januar 2008 av php_user
Gjest Slettet-rXRozPkg Skrevet 13. januar 2008 Skrevet 13. januar 2008 Du sier at ucfirst har problemer med å lage små bokstaver av ÆØÅ. Dette er feil, siden det eneste denne funksjonen gjør er å ta en streng og konvertere den første bokstaven til stor bokstav. Det kan godt hende at ucfirst har problemer med å konvertere æøå til ÆØÅ, men det er ikke det du beskriver... Slik jeg ser det her, er det er funksjonen strtolower som erproblemet. Prøv å bruke denne istedenfor: $poststed = ucfirst(mb_strtolower($row['poststed'],"UTF-8")); Det er ikke sikkert mb_strtolower er tilgjengelig, da dette er en del av en utvidelse til PHP. Ta en titt her for mer info: http://no.php.net/manual/en/ref.mbstring.php
G2Petter Skrevet 13. januar 2008 Forfatter Skrevet 13. januar 2008 Du har helt rett. Jeg skrev dette alt for sent i går, og tenkte meg tydeligvis ikke ordentlig om. mb_strtolower er tilgjengelig, men det er vel et problem med din løsning, i det at ucfirst ikke vil klare å konvertere de poststedene som begynner med æøå? Jeg lette etter en funksjon som gjør det samme som ucfirst, men som håndterer multibyte, men jeg klarte ikke å finne det.
jokkakim Skrevet 13. januar 2008 Skrevet 13. januar 2008 (endret) <?php function firstUpper($string) { $string1 = str_replace(array("æ","ø","å"), array("Æ","Ø","Å"), strtoupper($string{0})); $string2 = str_replace(array("Æ","Ø","Å"), array("æ","ø","å"), substr(strtolower($string), 1, strlen($string))); return $string1.$string2; } ?> Endret 13. januar 2008 av jokkakim
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå