Avatar billede danic Nybegynder
27. januar 2010 - 21:40 Der er 8 kommentarer

RSS feed fejler i IE

Hvad skal der til for at mit RSS feed kommer til at virke i IE? Det virker i Firefox.

http://www.godtgave.dk/rss.php

Jeg har forsøgt at finde fejlen med:
http://feedvalidator.org/check.cgi?url=http%3A%2F%2Fwww.godtgave.dk%2Frss.php

Men uden held.
Avatar billede arne_v Ekspert
28. januar 2010 - 01:49 #1
Validatorens fejl besked er ellers ret klar.

Din feed indeholder tegn som ikke er valid UTF-8.

Formentlig ÆØÅæøå som ISO-8859-1.
Avatar billede danic Nybegynder
28. januar 2010 - 10:45 #2
Hvad skal jeg gøre? droppe UTF-8? eller oversætte æøå?

Til:
æ: æ
ø: ø
å: å
Æ: Æ
Ø: Ø
Å: Å
Avatar billede danic Nybegynder
28. januar 2010 - 10:46 #3
Prøver lige igen:
æ: & aelig;
ø: & oslash;
å: & aring;
Æ: & AElig;
Ø: & Oslash;
Å: & Aring;
Avatar billede arne_v Ekspert
28. januar 2010 - 15:22 #4
Behold UTF-8 me soerg for at indhold faktisk er UTF-8.

Noget med at din PHP kod efaktisk gemmes i UTF-8 og at data korrekt hentes fra hvor de nu hentes i UTF-8.
Avatar billede danic Nybegynder
28. januar 2010 - 22:29 #5
Ok jeg har fået det til at virke nu, men jeg har et problem med at disse tegn vises   ; (non-breaking space)

Tegn som ellers bær blive fjernet med mine to funktioner her:

function replace_problem_characters($text) {
    $formattags = array("&");    
    $replacevals = array("&");
    $text = str_replace($formattags, $replacevals, $text);
    //$in[] = '@&(amp|#038);@i'; $out[] = '&';
    $in[] = '@&(#036);@i'; $out[] = '$';
    $in[] = '@&(quot);@i'; $out[] = '"';
    $in[] = '@&(#039);@i'; $out[] = '\'';
    $in[] = '@&(nbsp|#160);@i'; $out[] = ' ';
    $in[] = '@&(hellip|#8230);@i'; $out[] = '...';
    $in[] = '@&(copy|#169);@i'; $out[] = '(c)';
    $in[] = '@&(trade|#129);@i'; $out[] = '(tm)';
    $in[] = '@&(lt|#60);@i'; $out[] = '<';
    $in[] = '@&(gt|#62);@i'; $out[] = '>';
    $in[] = '@&(laquo);@i'; $out[] = '«';
    $in[] = '@&(raquo);@i'; $out[] = '»';
    $in[] = '@&(deg);@i'; $out[] = '°';
    $in[] = '@&(mdash);@i'; $out[] = '—';
    $in[] = '@&(reg);@i'; $out[] = '®';
    $in[] = '@&(-);@i'; $out[] = '-';
    $text = preg_replace($in, $out, $text);
    return $text;
}

function strip_html_tags($str) {
// $document should contain an HTML document.
// This will remove HTML tags, javascript sections
// and white space. It will also convert some
// common HTML entities to their text equivalent.

    $search = array ("'<script[^>]*?>.*?</script>'si",  // Strip out javascript
                    "'<[/!]*?[^<>]*?>'si",          // Strip out HTML tags
                    //"'([rn])[s]+'",                // Strip out white space
                    "'&(quot|#34);'i",                // Replace HTML entities
                    "'&(amp|#38);'i",
                    "'&(lt|#60);'i",
                    "'&(gt|#62);'i",
                    "'&(nbsp|#160);'i",
                    "'&(iexcl|#161);'i",
                    "'&(cent|#162);'i",
                    "'&(pound|#163);'i",
                    "'&(copy|#169);'i",
                    "'&#(d+);'e");                    // evaluate as php
   
    $replace = array ("",
                    "",
                    //"\1",
                    "\"",
                    "&",
                    "<",
                    ">",
                    " ",
                    chr(161),
                    chr(162),
                    chr(163),
                    chr(169),
                    "chr(\1)");
   
    return preg_replace($search, $replace, $str);
}
Avatar billede arne_v Ekspert
31. januar 2010 - 02:32 #6
Hvordan blivet &nbsp; vist ?
Avatar billede danic Nybegynder
31. januar 2010 - 09:32 #7
Du kan se mit feed her:
http://www.godtgave.dk/rss.php
Avatar billede arne_v Ekspert
01. februar 2010 - 02:11 #8
Det ser lidt mystisk ud.

Bedste ide jeg kan komme på er at du sætter noget debug print ind og finder ud af hvor det går galt i koden.
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

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