Avatar billede celfa Nybegynder
22. marts 2009 - 18:44 Der er 13 kommentarer og
1 løsning

str_replace hjælp

Hej. Hvordan kan det være det her ikke virker?

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

$menu1 = str_replace($fra, $til, $menu);

Når jeg echo'er $menu1 så skriver den bare den normale menu med æøå som spørgsmålstegn. Er derfor jeg prøver at lave æøå om til den kode.

Hvad gør jeg forkert?
Avatar billede erikjacobsen Ekspert
22. marts 2009 - 18:47 #1
Dine æøåÆØÅ-er er måske skrevet i iso-8859-1, mens $menu har æøåÆØÅ i utf-8 - eller omvendt.

Det kan normalt løses ved at anvende det korrekte tegnsæt på siden, men din måde vil også virke, for de anførte tegn.
Avatar billede mstorgaard Praktikant
22. marts 2009 - 18:49 #2
Problemet er ikke din str_replace, men sandsynligvis at æ, ø og å allerede formateres forkert, før du forsøger at ændre dem i din php-kode.

Du skal nok sørge for at dit tegnsæt/charset er ens på alle dine sider/databaser.
Avatar billede celfa Nybegynder
22. marts 2009 - 18:54 #3
Problemet er hvis jeg ændre min side til iso-8859-1 så laver den sådan 3 sjove tegn <<? noget i den stil på nogle sider ikke konsekvent alle sider..
Avatar billede celfa Nybegynder
22. marts 2009 - 18:55 #4

Avatar billede celfa Nybegynder
22. marts 2009 - 18:58 #5
Min database indeholder æøå og har sat databasen til at køre utf-8_danish. Er det korrekt?

Jeg har en tiny mce editor der laver tekst om til html, og den laver jo ikke ÆØÅ direkte, men med de der koder. Resten af siden har jeg brugt ÆØÅ.
Avatar billede erikjacobsen Ekspert
22. marts 2009 - 19:04 #6
  tyder på du har gemt siden som utf-8 med en BOM-header.

HTTP-headeren og det tilsvarende meta-tag skal være indstillet til det samme tegnsæt på alle dine sider, også der hvor data kommer fra. Data du allerede har i den database i det forkert tegnsæt skal laves om.
Avatar billede celfa Nybegynder
22. marts 2009 - 19:09 #7
Hvad er en bom header?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Jeg har prøvet med:
<?php header('Content-type: text/html; charset=utf-8'); ?>

for at se om det skulle gøre nogen foreskel. Men det gør det ikke.

Dvs. jeg skal sidde og rette 78 sider igennem og kopiere æøå?

Jeg har kun en index.php side, resten er kun indhold der bliver hentet.

Jeg er lidt lost hvad jeg skal gøre nu?
Avatar billede erikjacobsen Ekspert
22. marts 2009 - 19:13 #8
http://en.wikipedia.org/wiki/Byte_Order_Mark - kommer sikkert fra din teksteditor.

Hvad du skal gøre ved jeg ikke - det kommer an på hvad du har brugt af tegnsæt på dine filer, og hvad du vil.

Det er mest korrekt at skrive Type med stort T: Content-Type
Avatar billede celfa Nybegynder
22. marts 2009 - 19:19 #9
Jeg bruger utf-8 tegnsæt på min index.php resten af indholdet kommer ind fra databasen, som ligger i utf-8_danish, men der er indtastet æøå i den database.

Kan man så fx. lave en sql sætning til phpmyadmin der siger at den skal erstatte æ med &aelig; i hele tabellen?
Avatar billede erikjacobsen Ekspert
22. marts 2009 - 19:28 #10
De æøå-tegn du har i databasen kunne ud fra din beskrivelse være sat ind som iso-8859-1, måske fordi din indtastningside var i iso-8859-1 (eller hvor de nu kommer fra)
Avatar billede celfa Nybegynder
22. marts 2009 - 19:32 #11
Ja de er jo desværre indsat som iso-8859-1.. Men det er jo møg. Fordi nu har jeg vel både utf-8 tegnsætning og iso-8859-1. Og den laver vel de der sjove tegn når jeg skriver iso-8859-1 fordi at min text editor tiny mce laver utf-8 kode?

Men min forespørgsel på sql sætning, kan det lade sig gøre?
Avatar billede celfa Nybegynder
07. december 2011 - 17:53 #12
Rettede siden igennem således jeg kun kørte i iso-8859-1.

Tak for hjælpen. Smid et svar erikjacobsen.
Avatar billede erikjacobsen Ekspert
07. december 2011 - 18:36 #13
Jeg samler slet ikke på point, tak.
Avatar billede celfa Nybegynder
14. maj 2013 - 09:46 #14
Så lukker jeg tråden :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester