10. juni 2010 - 21:50Der er
1 kommentar og 1 løsning
Find ulovlige tegn, strip dem, tæl en ny strengs værdi ud fra et map mellem tegn og værdier
Hej eksperter,
Min case er, at jeg skal udsende en brugerindtastet tekst ($text) på SMS. Teksten der udsendes må kun indeholde tegnene: a, b, c, \n, \r og whitespace (mellemrum). Tegnene a og c fylder 2, mens de resterende fylder 1.
Jeg har altså en tekst ($text), hvoraf jeg gerne vil udlede følgende: 1. Hvilke ulovlige tegn indgår i $text? 2. Hvor meget fylder $text (kun lovlige tegn tælles, og der tages højde for at nogle tegn fylder mere end 1)? 3. En ny tekst ($textStripped), hvori alle ulovlige tegn er fjernet.
Jeg har opdaget, at der er et problem ved ovenstående løsning, når eksempelvis man bruger tegn som æ, ø og å. Jeg tror det skyldes noget charset eller det faktum, at det står som key i arrayet. Jeg har nu lavet en ny løsning:
Læg mærke til at jeg har sat de reelle tegn ind, og at tegnene efter position 165, er dem, der fylder to.
Jeg er lidt i tvivl om hvorfor jeg må anvende utf8_encode, men det var nødvendigt, for at få tegnene rigtige. Her kunne jeg godt bruge lidt redegørelse, for hvornår man bør benytte funktionen og dens søster utf8_decode. Alle mine filer er UTF8.
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.