04. april 2007 - 15:43Der er
17 kommentarer og 2 løsninger
Bruge danske vokaler i PHP.
Jeg har lavet en lille kontakt side, hvor folk kan sende en email via PHP.
Der sker der tilsyneladende en lille fejl, hvad angår de danske bogstaver. Æ æ Ø ø Å å bliver til Æ æ Ø ø Ã… Ã¥.
Jeg ved hvordan man skriver æ ø å i almindelig html. Jeg har forestillet mig noget lignende en "søg og erstat" funktion, som (muligvis) går ind og finder alle Æ og erstatter med Æ osv.
Når jeg bruger det du skrev, bliver "Content-type:..." lagt til teksten efter afsender. Det skyldes sikkert at min mail hedder:
mail ($to, $subject, $message, $headers);
Derfor tager den sikkert Content-type som almindelig tekst. Jeg har fået den til at skrive html lignende kode, ved at bruge følgende:
mail ($to,htmlentities($subject,ENT_NOQUOTES,'ISO-8859-1'),htmlentities($message,ENT_NOQUOTES,'ISO-8859-1'),$header);
Hvordan kan jeg så lave det om, så den tror mailen er baseret på HTML? Jeg har forsøgt mig ad med det eksempel der findes i PHP manualen, men det virker ikke helt efter hensigten.
Nu virker det (næsten). Den kan godt afsende mails i HTML format nu. Det eneste jeg sådan set mangler, er at få en form for oversætter/erstatter. Den skal erstatte de tegn som PHP skriver (Æ æØ øŠå) med HTML koderne for (Æ æ Ø ø Å å) altså Æ æ osv...
Jeg smider et indlæg så snart det virker og beskrivelse af, hvad jeg gjorde, så andre også kan få glæde og gavn af det.
#jakobdo Du skal have tak for din hjælp, jeg har dog valgt at bruge str_replace() i stedet for htmlentities(). Jeg lavede en lille replace funktion som finder alle danske vokaler og linjeskift og laver dem om som de skrives i HTML.
Lige en lille detalje til scriptet ovenfor. Man skal huske også at anvende det på navnet og evt. emnet :). Eksempelvis som nedenfor. Der kan evt. også tilføjes flere tegn, da PHP og HTML ikke ligner hinanden ;)
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.