RSS FEED via php?
Code (php)
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
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
<?php
header('Content-type: application/rss+xml; charset=iso-8859-1');
echo '<rss version="2.0">';
echo '<channel>';
$sql = "SELECT * FROM berichten ORDER BY post_datum2 DESC, post_tijd DESC";
$resultaat = mysql_query($sql,$conn) or die (mysql_error());
while ($rij = mysql_fetch_assoc($resultaat) and $aantal_berichten < 10){
echo '<item>';
echo '<title>'.$rij['titel'].'</title>';
echo '<link>http://www.lkv-njord.nl/index.php?id='.$rij['id'].'</link>';
echo '<description>'.count_words($rij['tekst']).'</description>';
echo '</item>';
$aantal_berichten++;
}
echo '</channel>';
echo '</rss>';
?>
header('Content-type: application/rss+xml; charset=iso-8859-1');
echo '<rss version="2.0">';
echo '<channel>';
$sql = "SELECT * FROM berichten ORDER BY post_datum2 DESC, post_tijd DESC";
$resultaat = mysql_query($sql,$conn) or die (mysql_error());
while ($rij = mysql_fetch_assoc($resultaat) and $aantal_berichten < 10){
echo '<item>';
echo '<title>'.$rij['titel'].'</title>';
echo '<link>http://www.lkv-njord.nl/index.php?id='.$rij['id'].'</link>';
echo '<description>'.count_words($rij['tekst']).'</description>';
echo '</item>';
$aantal_berichten++;
}
echo '</channel>';
echo '</rss>';
?>
Edit:
zorg gewoon dat het bestand wordt geupdate met str_replace
Gewijzigd op 01/01/1970 01:00:00 door Arjan Schuurman
Daarmee bedoel je dat de server elke vijf minuten (o.i.d) het bestand moet openen, de data controleren, en evt. updaten?
Code (php)
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
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
<?php
header('Content-type: application/rss+xml; charset=iso-8859-1');
echo '<rss version="2.0">' . "\n":
echo '<channel>' . "\n":
/* waar zijn de title, de url en zo van dit channel , zijn verplicht volgens de rss specificatie */
$sql = "SELECT * FROM berichten ORDER BY post_datum2 DESC, post_tijd DESC LIMIT 10";
$resultaat = mysql_query($sql,$conn) or die (mysql_error());
while ($rij = mysql_fetch_assoc($resultaat))
{
echo '<item>' . "\n":
echo '<title>'.$rij['titel'].'</title>' . "\n":
echo '<link>http://www.lkv-njord.nl/index.php?id='.$rij['id'].'</link>' . "\n":
echo '<description>'.count_words($rij['tekst']).'</description>' . "\n":
echo '</item>' . "\n":
}
echo '</channel>' . "\n":
echo '</rss>' . "\n":
?>
header('Content-type: application/rss+xml; charset=iso-8859-1');
echo '<rss version="2.0">' . "\n":
echo '<channel>' . "\n":
/* waar zijn de title, de url en zo van dit channel , zijn verplicht volgens de rss specificatie */
$sql = "SELECT * FROM berichten ORDER BY post_datum2 DESC, post_tijd DESC LIMIT 10";
$resultaat = mysql_query($sql,$conn) or die (mysql_error());
while ($rij = mysql_fetch_assoc($resultaat))
{
echo '<item>' . "\n":
echo '<title>'.$rij['titel'].'</title>' . "\n":
echo '<link>http://www.lkv-njord.nl/index.php?id='.$rij['id'].'</link>' . "\n":
echo '<description>'.count_words($rij['tekst']).'</description>' . "\n":
echo '</item>' . "\n":
}
echo '</channel>' . "\n":
echo '</rss>' . "\n":
?>
regel: 13 teken: 49
Eerste kanotocht op de Weerribben.
mm.. daar lag het dus aan. Dank voor de hulp. \n maakt het veel netter idd.
Code (php)
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
require_once "../includes/functions.php";
require_once "../includes/mysql_class.php";
$mysql = new MySql();
// meta-info
if ($_GET['type'] == "")
{
die ("Deze feed bestaat niet!");
}
else
{
header("Content-Type: application/rss+xml; charset=UTF-8");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
echo "<rss version=\"2.0\"
xmlns:dc=\"http://purl.org/dc/elements/1.1/\"
xmlns:content=\"http://purl.org/rss/1.0/modules/content/\"
xmlns:sy=\"http://purl.org/rss/1.0/modules/syndication/\">";
// channel info
echo "<channel>";
echo "<title>ImageHeroes " . $_GET['type'] . " Feed</title>";
echo "<link>http://".$_SERVER['SERVER_NAME'].":20000/" . $_GET['type'] . "/</link>";
echo "<description>" . $_GET['type'] . " Feed</description>";
echo "<language>Nl-nl</language>";
// mysql query
if ($_GET['type'] == "blog")
{
$result = mysql_query(
"SELECT *, DATE_FORMAT(blog_datetime,'%a, %d %b %Y %T') AS rfcpubdate FROM blog ORDER BY blog_datetime DESC LIMIT 0, 15 ");
}
else
if ($_GET['type'] == "video")
{
$result = mysql_query(
"SELECT *, DATE_FORMAT(uploaded_time,'%a, %d %b %Y %T') AS rfcpubdate FROM video ORDER BY uploaded_time DESC LIMIT 0, 15 ");
}
else
{
$result = mysql_query(
"SELECT *, DATE_FORMAT(blog_datetime,'%a, %d %b %Y %T') AS rfcpubdate FROM blog ORDER BY blog_datetime DESC LIMIT 0, 15 ");
}
// loop results
while ($row = mysql_fetch_assoc($result))
{
if ($_GET['type'] == "blog")
{
$title = $row['blog_name'];
$rss = strip_tags($row['blog_content'],
'<a><b><br><blockquote><center><code><dd><dl><dt><hr><i><img><li><ol><p><pre><u><ul>');
$rss = dot($rss, 50);
$date = "" . $row['rfcpubdate'] . " " . date('O') . "";
$author = "Michael";
$url = "http://".$_SERVER['SERVER_NAME'].":20000/blog/view/" . $row['blog_id'];
}
else
if ($_GET['type'] == "video")
{
$title = $row['video_name'];
$rss = strip_tags($row['video_description'],
'<a><b><br><blockquote><center><code><dd><dl><dt><hr><i><img><li><ol><p><pre><u><ul>');
$rss = dot($rss, 50);
$date = "" . $row['rfcpubdate'] . " " . date('O') . "";
$author = "Michael";
$url = "http://".$_SERVER['SERVER_NAME'].":20000/video/view/" . $row['video_id'];
}
echo "<item>";
echo "<title>" . $title . "</title>";
echo "<description>" . $lead . "</description>";
echo "<content:encoded>\n\t\t<![CDATA[" . $rss . "]]>\n\t\t</content:encoded>";
echo "<link>" . $url . "/</link>";
echo "<guid>" . $url . "/</guid>";
echo "<pubDate>" . $date . "</pubDate>";
echo "<dc:creator>" . $author . "</dc:creator>";
echo "</item>";
}
// close channel and rss
echo "</channel>";
echo "</rss>";
}
?>
require_once "../includes/functions.php";
require_once "../includes/mysql_class.php";
$mysql = new MySql();
// meta-info
if ($_GET['type'] == "")
{
die ("Deze feed bestaat niet!");
}
else
{
header("Content-Type: application/rss+xml; charset=UTF-8");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
echo "<rss version=\"2.0\"
xmlns:dc=\"http://purl.org/dc/elements/1.1/\"
xmlns:content=\"http://purl.org/rss/1.0/modules/content/\"
xmlns:sy=\"http://purl.org/rss/1.0/modules/syndication/\">";
// channel info
echo "<channel>";
echo "<title>ImageHeroes " . $_GET['type'] . " Feed</title>";
echo "<link>http://".$_SERVER['SERVER_NAME'].":20000/" . $_GET['type'] . "/</link>";
echo "<description>" . $_GET['type'] . " Feed</description>";
echo "<language>Nl-nl</language>";
// mysql query
if ($_GET['type'] == "blog")
{
$result = mysql_query(
"SELECT *, DATE_FORMAT(blog_datetime,'%a, %d %b %Y %T') AS rfcpubdate FROM blog ORDER BY blog_datetime DESC LIMIT 0, 15 ");
}
else
if ($_GET['type'] == "video")
{
$result = mysql_query(
"SELECT *, DATE_FORMAT(uploaded_time,'%a, %d %b %Y %T') AS rfcpubdate FROM video ORDER BY uploaded_time DESC LIMIT 0, 15 ");
}
else
{
$result = mysql_query(
"SELECT *, DATE_FORMAT(blog_datetime,'%a, %d %b %Y %T') AS rfcpubdate FROM blog ORDER BY blog_datetime DESC LIMIT 0, 15 ");
}
// loop results
while ($row = mysql_fetch_assoc($result))
{
if ($_GET['type'] == "blog")
{
$title = $row['blog_name'];
$rss = strip_tags($row['blog_content'],
'<a><b><br><blockquote><center><code><dd><dl><dt><hr><i><img><li><ol><p><pre><u><ul>');
$rss = dot($rss, 50);
$date = "" . $row['rfcpubdate'] . " " . date('O') . "";
$author = "Michael";
$url = "http://".$_SERVER['SERVER_NAME'].":20000/blog/view/" . $row['blog_id'];
}
else
if ($_GET['type'] == "video")
{
$title = $row['video_name'];
$rss = strip_tags($row['video_description'],
'<a><b><br><blockquote><center><code><dd><dl><dt><hr><i><img><li><ol><p><pre><u><ul>');
$rss = dot($rss, 50);
$date = "" . $row['rfcpubdate'] . " " . date('O') . "";
$author = "Michael";
$url = "http://".$_SERVER['SERVER_NAME'].":20000/video/view/" . $row['video_id'];
}
echo "<item>";
echo "<title>" . $title . "</title>";
echo "<description>" . $lead . "</description>";
echo "<content:encoded>\n\t\t<![CDATA[" . $rss . "]]>\n\t\t</content:encoded>";
echo "<link>" . $url . "/</link>";
echo "<guid>" . $url . "/</guid>";
echo "<pubDate>" . $date . "</pubDate>";
echo "<dc:creator>" . $author . "</dc:creator>";
echo "</item>";
}
// close channel and rss
echo "</channel>";
echo "</rss>";
}
?>
Er is een ongeldig teken gevonden in de tekstinhoud.
regel: 18 teken: 49
<description> Eerste kanotocht op de Weerribben.
Het enige dat ik kan ontdekken is een dubbele spatie:S
Hieronder de uitvoer (even in een phpveld voor de leesbaarheid):
Code (php)
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
<rss version="2.0">
<channel>
<title>Rss Feed</title>
<link>http://www.lkv-njord.nl/feed2.php</link>
<description>Rss feed van Njord</description>
<item>
<title>Bollentocht</title>
<link>http://www.lkv-njord.nl/index.php?id=244</link>
<description> Bollentocht Wolken van parfum <br />
<br />
Voor even waan je je in een topattractie die door tientallen camera&rsquo;s wordt vastgelegd. Je voelt je even een ster door alle aandacht van fotografen en de wetenschap dat je misschien wel in de huiskamer in Japan, China, Spanje of&nbsp; Zweden komt te hangen.De</description>
</item>
<item>
<title>Weerribben 2007</title>
<link>http://www.lkv-njord.nl/index.php?id=243</link>
<description> Eerste kanotocht op de Weerribben. <br />
<br />
Wat heerlijk om weer te kunnen varen. Er waren genoeg deelnemers en wonder boven wonder kwam de weersvoorspelling uit: na een periode van regen zou het droog worden met kans op zon.Tijdens de voorbereiding ben ik er van uit gegaan dat het koud</description>
</item>
<item>
<title>Uitnodiging van KV Quo Vadis</title>
<link>http://www.lkv-njord.nl/index.php?id=242</link>
<description> Zaandam, maart 2007<br />
<br />
Sportvrienden,Hierbij nodigen wij jullie uit tot deelname aan Sprint wedstrijden over 100 & 200mWelke gehouden worden op zaterdag 5 mei 2007 bij het botenhuis van de vereniging Oostzijde 393b, Zaandam. Inschrijvingen, volgens bijgesloten tabel, met vermelding van verenigings leider(ster), kunt u toezenden, liefst via email, aan</description>
</item>
<item>
<title>Uitnodiging van KV de Geuzen</title>
<link>http://www.lkv-njord.nl/index.php?id=241</link>
<description> Beste kanovrienden,<br />
<br />
Wij hebben het genoegen jullie uit te nodigen tot deelname aan:De ZuidervaartwedstrijdenInternationale Jeugdwedstrijden en Open Noord-Hollandse Kampioenschappen op 12 en 13 mei 2007. Er kan worden ingeschreven volgens de ingesloten inschrijftabel.De inschrijving sluit op 21 april 2007. De loting is op 24 april 2007 om 19.00 uur</description>
</item>
<item>
<title>Fotosessie Weerribben 2007</title>
<link>http://www.lkv-njord.nl/index.php?id=240</link>
<description> De fotosessie van het Weerribben 2007 is toegevoegd in het fotoboek. Henk Groeneveld heeft de foto s gemaakt. Dank je wel.</description>
</item>
<item>
<title>Sinjorenweekend (icf tocht)</title>
<link>http://www.lkv-njord.nl/index.php?id=239</link>
<description> Dit is een tocht die niet door njord word georganiseerd en zul je op eigen initiatief voor moeten opgeven.<br />
<br />
Datum: 5 en 6 mei<br />
15e Sinjorenweekend met grote havenrondvaart.<br />
<br />
vrijdag 4 mei: Aankomst der kampeerders 's avonds gezellig samenzijn in onze kantine.<br />
<br />
Zaterdag 5 mei: Rijkevorsel St</description>
</item>
<item>
<title>Kanocursus 2007</title>
<link>http://www.lkv-njord.nl/index.php?id=238</link>
<description> Zoals elk jaar organiseert Njord ook dit jaar weer een kanocursus. Bedoeld om beginnende kanovaarders de basisbeginselen van het kanovaren bij te brengen. Met een programma dat stapsgewijs die principes overdraagt en de deelnemers ook de gezelligheid en saamhorigheid van de vereniging biedt. Zo leer je nog eens iemand kennen</description>
</item>
<item>
<title>Kanopolo-eskimoteren de Beemd 5-2007</title>
<link>http://www.lkv-njord.nl/index.php?id=237</link>
<description> Kanopolo in De BeemdHet zal de meesten niet zijn ontgaan, Njord was ook deze winter weer actief in het zwembad De Beemd. Dat doen we al van oudsher. Wat velen niet weten is dat Njord vroeger de hele winter iedere zondag een uur naar De Beemd ging. De invulling was</description>
</item>
<item>
<title>Infoavond over onderkoeling 2007</title>
<link>http://www.lkv-njord.nl/index.php?id=235</link>
<description> Vrijdag avond 16 Februari is er een lezing geweest over onderkoeling. Daarvoor hadden wij Cor Blok uitgenodigd. Cor Blok is voorzitter van Gewest Oost en enthousiast kanovaarder van KV. Hardenberg-De Vecht. <br />
<br />
De dingen die in zijn lezing aan bod kwamen, waren: <br Wat is onderkoeling.<br Hoe kom je</description>
</item>
<item>
<title>Zij die zwemmen gaan, groeten u</title>
<link>http://www.lkv-njord.nl/index.php?id=234</link>
<description> Dat waren mijn woorden. Dit in analogie met die van de gladiatoren die de Romeinse keizer groetten alvorens zij het strijdtoneel in de arena betraden. Ik zat, net als Leo de Jong en 33 andere NKB leden, in een kano voor de transportbaan die ons vanuit het water naar de</description>
</item>
</channel>
</rss>
?>
<rss version="2.0">
<channel>
<title>Rss Feed</title>
<link>http://www.lkv-njord.nl/feed2.php</link>
<description>Rss feed van Njord</description>
<item>
<title>Bollentocht</title>
<link>http://www.lkv-njord.nl/index.php?id=244</link>
<description> Bollentocht Wolken van parfum <br />
<br />
Voor even waan je je in een topattractie die door tientallen camera&rsquo;s wordt vastgelegd. Je voelt je even een ster door alle aandacht van fotografen en de wetenschap dat je misschien wel in de huiskamer in Japan, China, Spanje of&nbsp; Zweden komt te hangen.De</description>
</item>
<item>
<title>Weerribben 2007</title>
<link>http://www.lkv-njord.nl/index.php?id=243</link>
<description> Eerste kanotocht op de Weerribben. <br />
<br />
Wat heerlijk om weer te kunnen varen. Er waren genoeg deelnemers en wonder boven wonder kwam de weersvoorspelling uit: na een periode van regen zou het droog worden met kans op zon.Tijdens de voorbereiding ben ik er van uit gegaan dat het koud</description>
</item>
<item>
<title>Uitnodiging van KV Quo Vadis</title>
<link>http://www.lkv-njord.nl/index.php?id=242</link>
<description> Zaandam, maart 2007<br />
<br />
Sportvrienden,Hierbij nodigen wij jullie uit tot deelname aan Sprint wedstrijden over 100 & 200mWelke gehouden worden op zaterdag 5 mei 2007 bij het botenhuis van de vereniging Oostzijde 393b, Zaandam. Inschrijvingen, volgens bijgesloten tabel, met vermelding van verenigings leider(ster), kunt u toezenden, liefst via email, aan</description>
</item>
<item>
<title>Uitnodiging van KV de Geuzen</title>
<link>http://www.lkv-njord.nl/index.php?id=241</link>
<description> Beste kanovrienden,<br />
<br />
Wij hebben het genoegen jullie uit te nodigen tot deelname aan:De ZuidervaartwedstrijdenInternationale Jeugdwedstrijden en Open Noord-Hollandse Kampioenschappen op 12 en 13 mei 2007. Er kan worden ingeschreven volgens de ingesloten inschrijftabel.De inschrijving sluit op 21 april 2007. De loting is op 24 april 2007 om 19.00 uur</description>
</item>
<item>
<title>Fotosessie Weerribben 2007</title>
<link>http://www.lkv-njord.nl/index.php?id=240</link>
<description> De fotosessie van het Weerribben 2007 is toegevoegd in het fotoboek. Henk Groeneveld heeft de foto s gemaakt. Dank je wel.</description>
</item>
<item>
<title>Sinjorenweekend (icf tocht)</title>
<link>http://www.lkv-njord.nl/index.php?id=239</link>
<description> Dit is een tocht die niet door njord word georganiseerd en zul je op eigen initiatief voor moeten opgeven.<br />
<br />
Datum: 5 en 6 mei<br />
15e Sinjorenweekend met grote havenrondvaart.<br />
<br />
vrijdag 4 mei: Aankomst der kampeerders 's avonds gezellig samenzijn in onze kantine.<br />
<br />
Zaterdag 5 mei: Rijkevorsel St</description>
</item>
<item>
<title>Kanocursus 2007</title>
<link>http://www.lkv-njord.nl/index.php?id=238</link>
<description> Zoals elk jaar organiseert Njord ook dit jaar weer een kanocursus. Bedoeld om beginnende kanovaarders de basisbeginselen van het kanovaren bij te brengen. Met een programma dat stapsgewijs die principes overdraagt en de deelnemers ook de gezelligheid en saamhorigheid van de vereniging biedt. Zo leer je nog eens iemand kennen</description>
</item>
<item>
<title>Kanopolo-eskimoteren de Beemd 5-2007</title>
<link>http://www.lkv-njord.nl/index.php?id=237</link>
<description> Kanopolo in De BeemdHet zal de meesten niet zijn ontgaan, Njord was ook deze winter weer actief in het zwembad De Beemd. Dat doen we al van oudsher. Wat velen niet weten is dat Njord vroeger de hele winter iedere zondag een uur naar De Beemd ging. De invulling was</description>
</item>
<item>
<title>Infoavond over onderkoeling 2007</title>
<link>http://www.lkv-njord.nl/index.php?id=235</link>
<description> Vrijdag avond 16 Februari is er een lezing geweest over onderkoeling. Daarvoor hadden wij Cor Blok uitgenodigd. Cor Blok is voorzitter van Gewest Oost en enthousiast kanovaarder van KV. Hardenberg-De Vecht. <br />
<br />
De dingen die in zijn lezing aan bod kwamen, waren: <br Wat is onderkoeling.<br Hoe kom je</description>
</item>
<item>
<title>Zij die zwemmen gaan, groeten u</title>
<link>http://www.lkv-njord.nl/index.php?id=234</link>
<description> Dat waren mijn woorden. Dit in analogie met die van de gladiatoren die de Romeinse keizer groetten alvorens zij het strijdtoneel in de arena betraden. Ik zat, net als Leo de Jong en 33 andere NKB leden, in een kano voor de transportbaan die ons vanuit het water naar de</description>
</item>
</channel>
</rss>
?>
Gewijzigd op 01/01/1970 01:00:00 door Guido van C
breaks... Hij leest van onderafaan... GEEN HTML in RSS. Heb ik zelf ook veel problemen mee gehad.
Een & word & (zie htmlentities en htmlspecialchars)
Html mag niet, maar XHTML mag wel, VALID XHTML wel te verstaan, dus geen <br> maar wel <br /> bijvoorbeeld
Zie regel 68 hierboven, daar staat wat ongeldige html.
Escapen van data is een belangrijk, als je dit teken < in de description wilt hebben bijvoorbeeld moet je um escapen naar <
Zoek anders maar eens rond op google
$text = html_entity_decode($text, ENT_QUOTES);
terug gecodeerd alleen blijft de spatie en een hoge komma gewoon geconverteerd. Ik heb het opgelost door een preg replace, maar waarom convert hij ze niet gewoon terug:S Feed werkt nu.
$text = preg_replace('/\ \;/i', '', $text);
$text = preg_replace('/\&rsquo\;/i', '\'', $text);