simpel rss feed script

Door Wijnand , 17 jaar geleden, 15.422x bekeken

Een simpel script om rss aan je pagina toe te voegen. Het script genereert een rss feed. Je kan dit toevoegen aan je pagina om simpel rss feeds aan je bezoekers aan te bieden.

Het script maakt gebruik van een mysql database om de content uit te halen. Ik heb als voorbeeld mijn database tabellen opgenomen in het script.

Als je het script wilt gebruiken vergeet dan niet je connectie script te includen.

<tip>misschien bruikbaar voor phphulp?</tip> ;)

Voorbeeld: http://www.webtraxx.nl/weblog/rss.php

Gesponsorde koppelingen

PHP script bestanden

  1. simpel-rss-feed-script

 

Er zijn 45 reacties op 'Simpel rss feed script'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Eris -
Eris -
17 jaar geleden
 
0 +1 -0 -1
Het is sowiso "Handig" om de juiste headers mee tegeven:

RSS is immers een XML bestand :

header("Content-Type: application/xml; charset=UTF-8");

Daarnaast is het vaak handig om de publicatie datum mee tegeven:

<pubDate>".date( "r", strtotime($rss['datumveld']))."</pubDate>
Wijnand
Wijnand
17 jaar geleden
 
0 +1 -0 -1
goede aanvulling, ik zal het script een dezer dagen nog even aanpassen
Eris -
Eris -
17 jaar geleden
 
0 +1 -0 -1
echo "<item>\n"; Dit is ook al voldoende
St.Chessere
St.Chessere
17 jaar geleden
 
0 +1 -0 -1
Mischien handig voor de mensen onder ons die er weinig verstand van hebben,
hoe lees ik het er weer uit ;).
Mischien een mooie volgende script.


17 jaar geleden
 
0 +1 -0 -1
Ik heb je voorbeeld feed iig toegevoegd op http://jouwnieuws.nl en daar werkt hij. Ik moet zeggen dat er nog een hoop varianten zijn van RSS/ATOM e.d. waardoor niet alle readers alles even goed parsen.. Check je feed bv eens op bovenstaande site of feedburner.com


17 jaar geleden
 
0 +1 -0 -1
Raar, ik denk pak een basic script maar als ik hem in een browser bekijk zie ik hem gewoon als plain text zonder de tags, en niet mooi als XMl geparsed :(

Als ik hem met FeedDemon bekijk gaat het daar wel goed...

Iemand?
Eris -
Eris -
17 jaar geleden
 
0 +1 -0 -1
In firefox doet hij het welt goed....


17 jaar geleden
 
0 +1 -0 -1
Wellicht is het een idee om in je .htaccess (als je webserver apache is) aan te geven dat de extensie .php veranderd kan worden in .xml:

AddType application/x-httpd-php .xml

op die manier kan het bovenstaande .php bestand (genaamd 'rss.php') aan de buitenwereld getoond worden als .xml: ('rss.xml').

Dit staat wat netter en is tevens een (klein) stukje beveiliging: zo ziet de buitenwereld niet dat je .php gebruikt.
P. Hapee
P. Hapee
17 jaar geleden
 
0 +1 -0 -1
Ik heb bovenstaande .htaccess-suggestie uitgeprobeerd maar het heeft niet het gewenste resultaat. Moet ik daarbij nog bepaalde zaken letten?

Ik heb het betreffende regeltje geknipt en geplakt in mijn bestaande .htaccess (waar al 4 regels in stonden).
Legolas
Legolas
17 jaar geleden
 
0 +1 -0 -1
gewoon dit in het script:

header("Content-Type: text/xml");
P. Hapee
P. Hapee
17 jaar geleden
 
0 +1 -0 -1
Geprobeerd, maar geen resultaat...
Legolas
Legolas
17 jaar geleden
 
0 +1 -0 -1
hoofdlettergevoelig?
header("Content-type: text/xml");
P. Hapee
P. Hapee
17 jaar geleden
 
0 +1 -0 -1
Je bedoelt toch op de plek waar nu (zie voorbeeldcode boven) staat:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
// plaats de header
header("Content-Type: application/xml; charset=UTF-8");

of moet ik jouw stukje code in m'n .htaccess zetten?
Legolas
Legolas
17 jaar geleden
 
0 +1 -0 -1
het verschil is dat ik text/xml meegeef, maar wel in de file :). je moet trouwens geen apache handlers instaleren en het bestand moet je gewoon php noemen.


17 jaar geleden
 
0 +1 -0 -1
dank je dank je wat een vette en handig script!
P. Hapee
P. Hapee
17 jaar geleden
 
0 +1 -0 -1
OK mensen, bij mij werkt het nog niet helemaal (dat de extensie .php veranderd kan worden in .xml).

Het bestand had ik wel veranderd in .xml dus dat heb ik nu aangepast en heet nu gewoon weer .php.
Verder heb ik de code nu exact overgenomen maar nog steeds werkt het niet...

Wat zijn Apache Handlers? Zijn dat de regels die in m'n .htacces file staan? Bij mij staat daar bv de regel in:

ErrorDocument 400 http://www.domeinnaam.nl.

Any ideas?


17 jaar geleden
 
0 +1 -0 -1
__-__ je wilt niet weten hoe lang ik hier naar heb lopen zoeken __-__

Hulde aan deze scripter!!


17 jaar geleden
 
0 +1 -0 -1
Een zeer handig scriptje, was ik ook op naar zoek,

P. Hapee: het is niet de bedoeling dat je header("Content-type: text/xml"); in de php-file zet maar op uw server insteld als je daar op kan, indien dit niet kan je ook in notepad een file maken met dit er in

AddType application/x-httpd-php .xml

deze noem je '.htaccess' en zet je in de root van uw site en dat zou ook werken


17 jaar geleden
 
0 +1 -0 -1
Dit is een uitstekend script. Ik ben er maanden niet in geslaagd om een degelijke rss feed te maken en dankzij dit script is het wel gelukt. Bedankt!


17 jaar geleden
 
0 +1 -0 -1
Dit script werkt bij mij goed tot ik speciale tekens zoals bijvoorbeeld ë ga gebruiken. Door deze speciale tekens krijg ik een foutmelding en wordt het document ook door rss validatoren op internet afgekeurd.
Jan
jan
16 jaar geleden
 
0 +1 -0 -1
Inderdaad met speciale tekens krijg ik ook steeds een foutmelding. Weet iemand raad?
Jelmer -
Jelmer -
16 jaar geleden
 
0 +1 -0 -1
misschien dat htmlspecialchars() vervangen door htmlentities() vervangen helpt...
Anders kan je nog proberen om in bijv. de regel echo("<description>".$artikel."</description>\n"); C-data tags te plakken, bijvoorbeeld zo: echo("<description><![CDATA[".$artikel."]]></description>\n"); en dat dan voor alle tags waar tekst met speciale karakters in voor kan komen.
Coen
Coen
16 jaar geleden
 
0 +1 -0 -1
Helaas heeft ook het gebruik van echo("<description><![CDATA[".$artikel."]]></description>\n") geen effect voor het probleem met de speciale tekens zoals "é". Nog andere suggesties?
Jelmer -
Jelmer -
16 jaar geleden
 
0 +1 -0 -1
htmlentities() ,htmlspecialchars(), maar zo te zien had ik die al eerder genoemd. Ook kan je je verdiepen in utf8_encode() en "chatset: utf8"
Jan
jan
16 jaar geleden
 
0 +1 -0 -1
utf8_encode() had ik reeds getest maar zonder resultaat. Ik denk dat we het probleem elders moeten zoeken.


16 jaar geleden
 
0 +1 -0 -1
@Wijnand: Sorry als het hard aankomt, maar iedereen kan zo'n script bedenken, het enige wat je hoeft te doen is een beetje PHP, en RSS 2.0 kennen ;)
Jelmer -
Jelmer -
16 jaar geleden
 
0 +1 -0 -1
@Sebastiaan: Tegenwoordig is RSS heel bekend en veel gebruikt, maar dit script is al een jaar oud. Daarbij, misschien gaat het wel om het idee, en niet om de uitwerking. En hoeveel mensen hebben nou ook echt kennis van hoe RSS moet worden opgesteld.


16 jaar geleden
 
0 +1 -0 -1
Uhm. Veel? :P Ik iig wel, omdat ik het ook voor me eigen site heb moeten gebruiken ^^
Coen
Coen
16 jaar geleden
 
0 +1 -0 -1
@Sebastiaan: Wellicht kun je met je ruime ervaring een oplossing aandragen op bovenstaand probleem. Ik begrijp uit je reactie tenminste dat dat heel simpel is als je een beetje PHP en RSS ervaring hebt... ;)
Tim
Tim
16 jaar geleden
 
0 +1 -0 -1
Ik heb ook een probleem met speaciale tekens iemand een oplossing?


16 jaar geleden
 
0 +1 -0 -1
htmlentities()
regel nummer één: alle karakters tussen de tags moeten ge-escpaed zijn!!!


16 jaar geleden
 
0 +1 -0 -1
Wel een leuke, de script van de maker zelf doet het niet eens op eigen server:
<rss version="2.0">
&#8722;
<channel>
<title>Weblog Wijnand van der Weij</title>
<link>http://www.webtraxx.nl/weblog</link>
<description>Persoonlijk weblog van wijnand van der Weij</description>
<language>nl</language>
<br/>
<b>Warning</b>
: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in
<b>/mnt/storage2/w/we/webtraxx.nl/html/weblog/rss.php</b>
on line
<b>14</b>
<br/>
</channel>
</rss>
Web Smile
Web Smile
16 jaar geleden
 
0 +1 -0 -1
(allang niet meer geweest hiero, maar kwam toevallig via google terecht)

handig scriptje! was ik net naar opzoek =)
Jan Paul
Jan Paul
15 jaar geleden
 
0 +1 -0 -1
De juiste header is volgens mij:

HEADER ("Content-type: application/rss+xml; charset=ISO-8859-1");
voor Internationaal Nederlands
of
HEADER ("Content-type: application/rss+xml; charset=UTF-8");
voor UTF-8
Rick Secret
Rick Secret
15 jaar geleden
 
0 +1 -0 -1
Het lìjkt me een goed script, alleen er wordt gevraagt naar het bestand connect.inc.php, maar die heb ik niet...
Dus, kan iemand connect.inc.php posten aub?

Thx alvast!
Nick Mulder
Nick Mulder
15 jaar geleden
 
0 +1 -0 -1
Connect.inc.php is gewoon een php file waarin een connectie met de database wordt aangemaakt...
Zoiets:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$host
= "localhost";   //mysql locatie
$user = "username";      //mysql gebruikersnaam
$pass = "password";      //mysql wachtwoord
$db = "database";   //mysql database

mysql_connect($host,$user,$pass) or die(mysql_error());
mysql_select_db($db);
?>
Remon
Remon
14 jaar geleden
 
0 +1 -0 -1
ik heb hem zoiets !!
http://www.partyflavour.nl/rss.php

ik neem aan dat het ook zo hoord te zijn ??

Mvg, Remon
Remon
Remon
14 jaar geleden
 
0 +1 -0 -1
hij werkt ineens niet meer.

Deze feed kan niet worden weergegeven

Deze feed bevat codefouten.
Ga terug naar de vorige pagina

Meer informatie

Er is een ongeldig teken gevonden in de tekstinhoud.
regel: 30 teken: 86


en voorheen deed hij het wel.
en in FIREFOX werkt hij wel.
J A
J A
14 jaar geleden
 
0 +1 -0 -1
Ik heb precies dezelfde fout..
Misschien is het wel een teken dat hij niet begrijpt ofzo, die in de tekst staat ???
Tuinman
Tuinman
13 jaar geleden
 
0 +1 -0 -1
Hopelijk kan iemand mij helpen.
Ik krijg deze fout:

XML Parsing Error: junk after document element
Location: http://www.web-tech.nl/ajax4fans/rss.php
Line Number 2, Column 1:<b>Warning</b>: mysql_query() [<a href='function.mysql-query'>function.mysql-query</a>]: Access denied for user 'md110674'@'localhost' (using password: NO) in <b>/storage/mijndomein/users/110674/public/sites/www.web-tech.nl/ajax4fans/rss.php</b> on line <b>9</b><br />
^

Terwijl ik de code gewoon gekopieerd hebt en aangepast aan mijn eigen db.
Hopelijk heeft iemand een antwoord voor mij.
J C
J C
11 jaar geleden
 
0 +1 -0 -1
HEt is een oud script dus ik heb geen idee of het nog werkt met de huidige techniek. Maar het lukt mij tot nu toe nog niet:

Dit is mijn foutmelding:
The XML page cannot be displayed
Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.


--------------------------------------------------------------------------------

Whitespace is not allowed at this location. Error processing resource 'http://www.jcsl.nl/feed/jcsl.xml'. Line 1, Position...

En dit mijn script:

Zoals je misschien ziet heb ik geen lege regel bovin staan.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?
// plaats de header
header("Content-Type: application/xml; charset=UTF-8");

// laad de database connectie
require("includes/config.php");

// laad de 5 laatst toegevoegde artikelen uit de database
$sql =  mysql_query("SELECT * FROM alg_nieuws WHERE alg_nieuws_website=1
                        "
);

// plaats rss informatie
echo("<rss version=\"2.0\">\n");
echo("<channel>\n");
echo("<title>J.C. Sound And Light</title>\n");
echo("<link>www.jcsl.nl</link>\n");
echo("<description>J.C. Sound And Light is sinds 1995 het vertrouwde adres voor alles op het gebied van licht- en geluidverzorging.</description>\n");
echo("<language>taalinstelling</language>\n");

// laad de artikelen uit de database
while($rss_feed = mysql_fetch_assoc($sql))
{

// filter de extra slashes
$artikel = stripslashes($rss_feed['alg_nieuws_bericht']);

// zet alle html karakters om in leesbare tekens
$artikel = htmlspecialchars($artikel);
 
// plaats de artikelen
echo("<item>\n");
echo("<title>".$rss_feed['titel']."</title>\n");
echo("<link>http://www.jcsl.nl/?pagina=nieuws&nieuwsid=".$rss_feed['nieuws_id']."</link>\n");
echo("<description>".$artikel."</description>\n");
echo("</item>\n");
}


// sluit de rss informatie
echo("</channel>\n");
echo("</rss>");
?>
Yannick -
Yannick -
9 jaar geleden
 
0 +1 -0 -1
Het is misschien even een opfrisser van het bericht maar ik heb alle stappen zo goed mogelijk proberen te nalopen alleen ik blijf hij 1 stap hangen die ik maar niet voltooid krijg!

Ik heb alle bestanden ingevuld zoals Connect.inc.php maar hij maakt helaas geen verbinding met de database terwijl de gegevens toch juist zijn!

Ik heb dit nu als code:
Quote:
<rss version="2.0">
<channel>
<title>SporenNetNL</title>
<link>http://www.sporennet.nl/testominal</link>
<description>Laatste OV Nieuws</description>
<language>Dutch</language>
<br />
<b>Warning</b>: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in <b>/home/sporennet/sporennet.nl/testominal/rss.php</b> on line <b>20</b><br />
</channel>
</rss>
Danny von Gaal
Danny von Gaal
4 jaar geleden
 
0 +1 -0 -1
Thanks, hier heb ik wat aan. Alleen volgens mij is les 1 toch begin nooit een php script met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? ?>
maar met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php


Tevens heb ik mysql gewijzigd in mysqli dat is weer wat veiliger.
- Ariën -
- Ariën -
4 jaar geleden
 
0 +1 -0 -1
Dat klopt, maar het script is al behoorlijk oud. Eigenlijk doe je er beter aan om ook meteen SimpleXML of DOMdocument te gebruiken om je XML-feed op te bouwen.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Thomas van den Heuvel
Thomas van den Heuvel
4 jaar geleden
 
0 +1 -0 -1
Quote:
Tevens heb ik mysql gewijzigd in mysqli dat is weer wat veiliger.
Wait, what? Hoezo dat dan?

Ook hier is het (weer) belangrijk dat al je character encoderingen aansluiten. Als de data in je database of je connectie niet UTF-8 is, en je deze data vervolgens in een UTF-8 encoded feed propt krijg je natuurlijk stront he.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. simpel-rss-feed-script

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.