Avatar billede gil-galad Nybegynder
04. december 2005 - 21:06 Der er 14 kommentarer og
1 løsning

Fejl i nyhedsfeed efter php5

Hej

Jeg har en rss-parser i php, der skal bruge de to nedenstående xml-filer.

http://www.astronomibladet.dk/_index.xml
http://www.universetoday.com/universetoday.xml

Begge har virket indtil nu, men da serveren fik php5 installeret virker http://www.astronomibladet.dk/_index.xml ikke mere, mens den anden gør?

Ved ikke om jeg skal vise noget kode, eller det kan ses i xml-dokumenterne, men bare sig til!
Avatar billede halvamatoer Nybegynder
04. december 2005 - 22:36 #1
Er ikke superekspert i XML, men fejlen skyldes at explorer i xml ikke kan finde ud af de danske karakter hvis det ikke er gemt korrekt.
eks. http://www.klapmusen.dk/20020614 åbenbart har din php5 fået den fejl frem.
Hvis det er din fil skal du lige åbne den i f.eks notepad og gemme den som unicode.
Så kører du igen.
Avatar billede gil-galad Nybegynder
04. december 2005 - 22:47 #2
Det er ikke min fil, men jeg vil lige spørge dem der ejer det, om det ville være noget de ville rette.

Men kan det bevirke at filen overhovedet ikke bliver vist?:

    require('filer/rss/rss_fetch.inc');
    $oldLevel = ini_get('error_reporting');
    error_reporting($oldLevel ^ E_USER_WARNING);
    $rss = fetch_rss('http://www.astronomibladet.dk/_index.xml');
    error_reporting($oldLevel);
    if( $rss != false ){
      foreach ($rss->items as $item) {
        $description=preg_replace('/<img src="\s*(\.\.|http:\/\/www\.astronomibladet\.dk)?\//i','<img alt="Nyheder fra astronomibladet" src="http://www.astronomibladet.dk/',$item['description']);
        $description = strip_tags($description,'<img>');
        echo "<div class=\"nyheder\"><b>".$item['title']."</b><br>".$description."<div style=\"text-align: right; clear: both;\"><a href=\"".$item['link']."\" target=\"_blank\">Klik her for at læse mere</a></div></div><img src=\"grafik/streg.gif\" alt=\"\" class=\"streg\">";
      }
    }else{echo "<br><br>En midlertidig fejl opstod.";}
Avatar billede halvamatoer Nybegynder
04. december 2005 - 23:03 #4
Hvis jeg kører dit link, så udfører den opgaven som ovenstående kode.
Jeg ser toppen af universet.frac.dk og jeg ser din en midlertidig fejl opstod komme frem.

Så der må være noget andet der stopper den.
Avatar billede gil-galad Nybegynder
04. december 2005 - 23:06 #5
ja, men det mærkelige er, at hvis man bytter adressen til xml-dokumentet ud med med en anden, virker det perfekt?!  Det er som om http://www.astronomibladet.dk/_index.xml ikke findes, men det gør det jo!
Avatar billede halvamatoer Nybegynder
04. december 2005 - 23:12 #6
Den må jo skyldes at din php5 ikke acceptere  if( $rss != false )  }else{echo "<br><br>En midlertidig fejl opstod.";} - kan går i stå pga den for fejlen.

Men hvorfor kan jeg ikke sige
Avatar billede gil-galad Nybegynder
05. december 2005 - 00:10 #7
http://www.astronomibladet.dk/_index.xml
http://www.astronomibladet.dk/index.xml

De er næsten ens, men fejlen kommer kun hvis man bruger det doukument med _ 'en i?

Kan php5 ikke lide det tegn?
Avatar billede janegil Nybegynder
05. december 2005 - 10:08 #8
Feeden fra http://www.astronomibladet.dk/_index.xml er feil, se http://feedvalidator.org/check.cgi?url=http%3A%2F%2Fwww.astronomibladet.dk%2F_index.xml og http://rss.scripting.com/?url=http%3A%2F%2Fwww.astronomibladet.dk%2F_index.xml.

Så ideelt sett skulle de rette sine feil, så virker sikkert din kode.

Men erfaringsmessig er det nok mere realistisk å kode rundt andres feil, enn å få dem til å rette dem.

http://www.universetoday.com/universetoday.xml er OK, så intet mysterium at den virker.
Avatar billede gil-galad Nybegynder
05. december 2005 - 16:09 #9
http://www.astronomibladet.dk/_index.xml
http://www.astronomibladet.dk/index.xml

Men hvorfor viker den nederste? de er temmelig ens

Og hvad kan jeg gøre for at få det til at virke?
Avatar billede janegil Nybegynder
05. december 2005 - 16:26 #10
Den ene har angitt iso-8859-1 encoding eksplisitt i xmlheaderen, den andre ikke. (Ingen av dem angir encoding i HTTP-headeren.)

Begge ER iso-8859-1 men den ene blir forsøkt tolket som utf-8.

Hva du kan gjøre? Kan du ikke bare bruke den feeden som virker, http://www.astronomibladet.dk/index.xml? Eller sultestreike hos redaksjonen, inntil de deklarerer kodingen i den XML-headeren for den andre feeden også?
Avatar billede janegil Nybegynder
05. december 2005 - 16:29 #11
Jeg kan ikke PHP, mulig den kan spesifisere kodinge ved lesing av XML. Men jeg tviler - denskalgs SKAL spesifiseres i feeden selv.
Avatar billede gil-galad Nybegynder
22. december 2005 - 18:56 #12
Det ser desværre ikke ud til at folkene bag har lyst til at ændre den..

Er der en måde jeg kan kode mig ud af problemet?
Avatar billede janegil Nybegynder
04. januar 2006 - 12:03 #13
Om du skal tvinge PHP til å tolke en side med en bestemt encoding, skal du kanskje over i PHP-gruppen for å få svar.
Avatar billede gil-galad Nybegynder
04. januar 2006 - 15:25 #14
Det gør jeg så
Avatar billede gil-galad Nybegynder
04. januar 2006 - 15:37 #15
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
Kurser inden for grundlæggende programmering

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