Avatar billede mortenfn Nybegynder
09. januar 2003 - 22:46 Der er 11 kommentarer og
1 løsning

E6 til æ

Hvorfor virker denne her ikke?

$body = "=E6sel";

$body = ereg_replace("=[0-9A-F]{2}",chr(hexdec("\\0")),$body);

Det sklulle blive til æsel men det bliver til sel - hvorfor?

Hilsen MortenFN
Avatar billede jakoba Nybegynder
09. januar 2003 - 22:54 #1
fordi du tager lighedstegnet med i den streng du giver til hexdec.
prøv med:

$body = "=E6sel";

$body = ereg_replace("=([0-9A-F]{2})",chr(hexdec("\\1")),$body);
Avatar billede mortenfn Nybegynder
09. januar 2003 - 22:57 #2
så giver den bare en firkant
Avatar billede mortenfn Nybegynder
09. januar 2003 - 22:59 #3
hexdex er reelt lige glad om = er med eller ej
Avatar billede jakoba Nybegynder
09. januar 2003 - 23:29 #4
der står godt nok det er det samme. (men hvorfor giver det så en firkant istedet for ingenting?)
2 mulige:
1) der skal angives anførselsteng omkring replacement
  $body = "=E6sel";
  $body = ereg_replace("=([0-9A-F]{2})","'".chr(hexdec("\\1"))."'",$body);

2) kunne det være at være browseren der ønsker sig at få æ som html-entity ?
  $body = "=E6sel";
  $body = ereg_replace("=([0-9A-F]{2})","&".hexdec("\\1").";",$body);
Avatar billede mortenfn Nybegynder
09. januar 2003 - 23:33 #5
$body = ereg_replace("=[0-9A-F]{2}",chr(hexdec("=E6")),$body);

når jeg indsætter "manuelt" virker det fint !!
Avatar billede mortenfn Nybegynder
09. januar 2003 - 23:41 #6
sjovt nok kommer æ frem her:

    $body = "=E6sel";

      echo chr(hexdec(substr($body,0,3)));
Avatar billede jakoba Nybegynder
10. januar 2003 - 00:01 #7
her er den vist

$body = "=E6sel";
$body = ereg_replace("=[0-9A-F]{2}","chr(hexdec('\\0'))",$body);
Avatar billede mortenfn Nybegynder
10. januar 2003 - 15:35 #8
tester du dine forslag eller gætter du blot?

chr(hexdec('=E6'))sel
Avatar billede jakoba Nybegynder
10. januar 2003 - 16:00 #9
sidste forslag er på basis af eksempel 2 på siden
http://dk.php.net/manual/en/function.preg-replace.php
hvor de netop på den måde ønsker at 'efterbehandle' den fundne match idet der substitueres.

men nej, jeg tester ikke hvergang
Avatar billede jakoba Nybegynder
10. januar 2003 - 16:03 #10
og jeg læser ikke engang korrekt. jeg havde overset:

"/e modifier makes preg_replace() treat the replacement parameter as PHP code after the appropriate references substitution is done. Tip: make sure that replacement constitutes a valid PHP code string, otherwise PHP will complain about a parse error at the line containing preg_replace(). "

så et sidste (utestet) forsøg:
$body = "=E6sel";
$body = preg_replace("/=[0-9A-F]{2}/e","chr(hexdec('\\0'))",$body);

mvh JakobA
Avatar billede mortenfn Nybegynder
10. januar 2003 - 16:16 #11
Ja nu er den der. Jeg burde nok selv have læst ordeneligt efter på PHP-siderne for selve løsningen var der, endda til det jeg skal bruge den til, nemlig noget med e-mail

Du har fortjent dine P - ;O) - svar lige
Avatar billede jakoba Nybegynder
10. januar 2003 - 16:18 #12
takker
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