webForumDet fria alternativet

RSS-fel

XML

8 svar · 840 visningar · startad av bassebhu

Medlem sedan nov. 20016 480 inlägg
Frågan#1

Hej alla glada!

Jag knåpade ihop en rss-feed från ett php-dokument med text/xml content-type igår. Det funkade nästan helt utmärkt. Men idag när jag går in på samma adress så får jag följande fel:

Safari kan inte öppna sidan ”feed://adress.se/rss.php”. Felet var: ”okänt fel” (NSURLErrorDomain:-1) Välj Rapportera bugg till Apple från Safari-menyn, anteckna felnumret och beskriv vad du gjorde innan du såg det här meddelandet.

Det borde ju inte vara ett webbläsarfel så jag ställer frågan i det här forumet. Är det någon som har sett felet förut och direkt kan sätta fingret på vad det rör sig om?

Jag fick samma fel igår ett tag, men sen lade jag in en htaccess-fil i den mappen med:
AddType application/x-httpd-php .xml
och då funkade det. Samma fil ligger där nu, men nu funkar det icke.

Tacksam för tips!

Medlem sedan nov. 20016 480 inlägg
#2

Det verkade vara <?xml version="1.0" encoding="utf-8"?> som behövdes. Det funkar för tillfället, men jag är fundersam över hur cachen funkar.

Jag hämtar ut poster från en mysql-databas och trots att jag ändrar dessa poster så hämtas inte nytt material ut i rss-läsaren. Det verkar som att den cachear nåt så fruktansvärt.

Hur ska man styra det? Finns det något sätt att nollställa cachen eller ange en tidpunkt (builddate eller vad det heter) så att rss-feeden hela tiden överensstämmer med mysqldatabasen?

Medlem sedan juli 20013 378 inlägg
#3

Hmm...

En URL till filen du försöker hämta skulle definitivt hjälpa ;)

Men gissningsvis :)
Den där "AddType"-raden säger mig att du försöker koppla ihop ".xml" med PHP så att .XML-filer skall exekveras mha PHP innan de levereras ?

... om det är så undrar jag på fråga ett:
Anger du även "rätt" MIME-typ för ditt feed med t.ex.

<?php header("Content-type: application/rss+xml"); ?>

?

... och på fråga två undrar jag:
Hur har du cachen inställd i din Safari ?
Får du samma cache-problem om du använder en "vanlig" php-sida och ser på resultatet i HTML ?
Har du provat att de mekanismer som du har tillgång till i HTTP-headern - se http://se2.php.net/header (sök på "cache" på sidan)?

Medlem sedan nov. 20016 480 inlägg
#4

Jag använde content-type: text/xml, men är din variant bättre. Vad skiljer? Jag bytte till din och det verkar funka. Ändringar dyker upp när man refreshar min feed nu, men den posten som ändrades ligger också kvar. Om jag skriver ut det som html så är det såklart exakt som från databasen. Det är bara det att rss-feeden inte stämmer överens exakt med databasen. Det kanske jag iofs inte behöver eftersträva. Det kommer inte att vara så enormt mycket ändringar i publicerade poster. Men det är ju dumt om originalet ligger kvar som ytterligare en artikel om man har ändrat nåt i den.

Du förstår nog vad jag menar. Jag började med rss igår så jag har itne koll på allt än ;)

Mycket riktigt så är det en php-fil jag har som hämtar mysqldata och skriver ut det som en xml-fil med php-ändelse :)

Jag vet inte hur cachen är inställd i safari, hm. Default antar jag. Har inte pillat nåt. Vad brukar det ligga på? 0,5-1h för rss?

Jag undrar även om jag har någon användning av <lastBuildDate>-taggen i sammanhanget?
Alla mysql-poster får ett datum och tid när de skapas. Om man ändrar en post så läggs ett uppdaterat-datum in också. När jag hämtar ut posterna i rss:en så ger den <pubDate>-taggen antingen publiceringsdatumet eller uppdateringsdatumet beroende på om någon ändring har gjorts. Verkar det vettigt? Sedan hade jag tänkt att man kan hämta ut datumet för senaste ändringen och lägga det värdet i <lastBuildDate>. Jag har inte en susning om vad jag håller på med som vanligt, men jag tycker att det borde funka så :) Rätta mig gärna om/för att jag har fel ;)

Medlem sedan nov. 20016 480 inlägg
#5

En till fråga. Jag körde feedvalidatorn och fick en del fel.

"lastBuildDate must be an RFC-822 date-time: Fre, 08 Sep 2006 19:00:00 CEST"
vad i detta bör ändras?:
strftime("%a, %d %b %Y %T %Z", strtotime('2006-09-08 19:00:00'))

Sen får jag fel på i princip alla åäö och ä etc. Är det bara att ignorera?

Medlem sedan nov. 2002302 inlägg
#6

bassebhu skrev:

Sen får jag fel på i princip alla åäö och ä etc. Är det bara att ignorera?

Du har ju valt att skicka din xml som utf8 då måste du också koda dina åäö med utf8.

Medlem sedan okt. 20001 285 inlägg
#7

Jepp .. spara filerna som " UTF-8 NO BOM " har för mig att koden inte validerar på W3C om man bara sparar som " UTF-8 " pgr av det läggs till nån extra byte / tecken

Medlem sedan nov. 20016 480 inlägg
#8

Jag bytte till ISO-8859-1. Det verkar funka bättre.

Nu har jag ett problem med att iTunes säger att min länk inte är en giltig podcast-url, men det vet jag inte hur jag ska beskriva så det får jag skjuta upp :)

Medlem sedan sep. 200593 inlägg
#9

kolla in date ("r") !!!

date ("r", strtotime('2006-09-08 19:00:00'))

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)