Avatar billede hoppe11 Nybegynder
04. december 2007 - 19:28 Der er 7 kommentarer og
1 løsning

svær reg.exp - utf8 substr funktion

jeg har en utf8 substr funktion som tilsyneladende ikke virker helt :(

hvis tekststrengen starter med et specieltegn som f.eks. ø returnerer den ingenting og det samme hvis der er et linkeskift eller lignende bliver det også returneret med

er der nogen som har mod på at hjælpe? :)

http://electrobeat.dk.linux17.wannafind.dk/v3/_tst.php
Avatar billede hoppe11 Nybegynder
04. december 2007 - 19:37 #1
det virker selvfølgelig med speciel tegn i starten af strengen (havde glemt at smide content="text/html; charset=utf-8" på siden

men hvis der f.eks. kommer et \n et stykke inde i strengen bliver det efterfølgende returneret med i resultatet, hvilket det jo helst ikke skal ske :)
Avatar billede coderdk Praktikant
04. december 2007 - 20:21 #2
Har du prøvet at bruge /u for UTF-8? http://dk2.php.net/pcre.pattern.modifiers
Avatar billede hoppe11 Nybegynder
04. december 2007 - 22:11 #3
det er ikke mig som har lavet mønstret.. fandt det på php.net :)

det løser ikke noget med /U
Avatar billede coderdk Praktikant
04. december 2007 - 22:43 #4
ikke /U men /u
Avatar billede coderdk Praktikant
04. december 2007 - 22:46 #5
Prøv med

function utf8_substr($str, $start, $end)
{
    return preg_replace('/^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$start.'}((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$end.'}).*/su', '\\1', $str);
}

ellers prøv med en færdig: http://phputf8.sourceforge.net/
Avatar billede coderdk Praktikant
04. december 2007 - 22:48 #6
hmm hvis du ikke kan kopiere det ovenstående:

function utf8_substr($str, $start, $end)
{
    return preg_replace( '/^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,' . $start . '}((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,' . $end . '}).*/su', '\\1', $str);
}
Avatar billede hoppe11 Nybegynder
04. december 2007 - 23:24 #7
umiddelbart ser det ud til at lykkes hvis man blot smider /s på.. uden u :)

smid et svar
Avatar billede coderdk Praktikant
04. december 2007 - 23:25 #8
Aight :)
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