02. november 2005 - 10:51Der er
11 kommentarer og 1 løsning
brug af danske bogstaver i variabler
Jeg er ved at flytte et site for en bruger fra en server til en anden, og jeg har kunnet konstatere at der mange steder i koden er brugt danske special bogstaver i variabelnavne. Det virker (magi) på den gamle server, men giver problemer på den nye server.
Hvordan kan jeg for dette site få Apache/PHP til at forstå æøå i variable navne (GET og POST samt internt).
At ændre alle steder til at det ikke er æøå er ikke en brugbar løsning.
Og hvor er det da ringe at jeg ikke kan oprette et spørgsmål vhroi der står "æøå" - jeg får at vide at det ikke beskriver mit problem - jo det gør - suk.
At bytte tegn ud er at trampe på thermometret ... patienten er stadig syg ;o) Man bruger naturligvis ikke specialtegn i variabler og filnavne ... det er så enkelt, som det kan være :)
men ikke desto mindre virker det på den gamle server - at koden tidligere har været mindre heldig kan jeg desværre ikke gøre meget ved - det er for omstændigt at skrive den om $$.
Nizo - den løsning virker ikke - det er er ikke en string der skal outputtes - det er selve variabel navnet der indeholder et æøå f.eks. "$leverandør"
Hvis der er variablen, er det ikke muligt saa hvidt jeg ved.
Jeg tænkte paa det man tit ser paa sider hvis server ikke forstaar æøå men kun HTML'et og naar de ikke forstaar det, bliver det bare til et "?", men det kan ogsaa være fordi skrifttypen ikke har tegnet i sig.
Jeg mener at redhat er glade for utf-8, så det er sikkert grunden til at den kunne godtage danske tegn. Hvis det er tilfældet er løsningen at få din nye PHP installation til at bruge utf-8. Jeg er ikke sikker på hvor dybt problemet stikker.
Prøv at se på default_charset indstillingen i php.ini og den tilsvarende i apache.
Det er nok utf-8 du skal bruge. Jeg har selv haft problemer med forskelle mellem de to tegnsæt, og det kan drille rigtigt meget. Jeg skal dog ikke kunne sige med sikkerhed om det virkeligt er det der er galt. Prøv at checke phpinfo() på begge maskiner hvis du kan. De skal helst ligne hinanden mest muligt.
de ligner ikke hinanden med vilje - vi har valgt at køre med Ubuntu pakker for php/apache/mysql for at gøre vedligeholdelse nemmere for fremtiden - jeg har prøvet på min egen udviklings maskine (med egen kompileret php/apache) og her har jeg heller ikke kunnet få variablenavne med æøå til at virke.
Jeg ved at understøttelse for de forskellige tegnsæt kan konfigureres helt ned til kernel niveau, så der er mange steder hvor det kan gå galt derfra og så op til din PHP fortolker. Bare hvis du overfører utf-8 filer til en maskine der kun bruger iso-8859-1, kan de danske tegn blive lavet om til ubrugeligt skrammel. Jeg har selv været der. Dog har jeg været lidt mere heldig end dig ;) Du kan evt. teste med en windows install. Jeg mener at windows er 100% utf-8. Men den simple løsning er nok en rekursiv search/replace hvor du erstatter alle danske tegn.
lukker - har omskrevet nogle enkelte sider, så det på front end ikke giver problemer
Synes godt om
Ny brugerNybegynder
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.