Probleem met RSS feed
Ik heb een RSS feed op mijn site. Werkt altijd prima tenzij er een artikel op mijn site staat, waarin een & teken staat.
Dan geeft de feed een foutmelding. Als ik er & van maak dan werkt hij wel.
Hoe kan ik dat automatisch laten gebeuren? Dus dat de feed een & teken omzet naar & ?
Dit is mijn code (rss.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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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
<?php
include('config.php');
header("Content-Type: application/xml; charset=UTF-8");
echo '<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>test</title>
<link>http://www.test.nl/</link>
<atom:link href="http://www.test.nl/rss.php" rel="self" type="application/rss+xml" />
<description>Test</description>
<language>NL</language>
<copyright>Copyright (c) 2009, test</copyright>
';
$query = "SELECT
id, titel, omschrijving, prijs, datum
FROM
advertenties
WHERE
status=0
ORDER BY
datum DESC
LIMIT
25";
$result = mysql_query($query);
if ( !$result ) {
echo 'Error generating RSS-feed!<br />';
echo mysql_error();
die();
}
while ( $row = mysql_fetch_assoc($result) ) {
echo ' <item>
<title>'.$row['titel'].'</title>
<link>http://www.test.nl/adv.php?id='.$row['id'].'</link>
<description>'.$row['omschrijving'].'</description>
<pubDate>'.date('r', strtotime($row['datum'])).'</pubDate>
<guid>http://www.test.nl/adv.php?id='.$row['id'].'</guid>
</item>';
}
echo '</channel>
</rss>';
?>
include('config.php');
header("Content-Type: application/xml; charset=UTF-8");
echo '<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>test</title>
<link>http://www.test.nl/</link>
<atom:link href="http://www.test.nl/rss.php" rel="self" type="application/rss+xml" />
<description>Test</description>
<language>NL</language>
<copyright>Copyright (c) 2009, test</copyright>
';
$query = "SELECT
id, titel, omschrijving, prijs, datum
FROM
advertenties
WHERE
status=0
ORDER BY
datum DESC
LIMIT
25";
$result = mysql_query($query);
if ( !$result ) {
echo 'Error generating RSS-feed!<br />';
echo mysql_error();
die();
}
while ( $row = mysql_fetch_assoc($result) ) {
echo ' <item>
<title>'.$row['titel'].'</title>
<link>http://www.test.nl/adv.php?id='.$row['id'].'</link>
<description>'.$row['omschrijving'].'</description>
<pubDate>'.date('r', strtotime($row['datum'])).'</pubDate>
<guid>http://www.test.nl/adv.php?id='.$row['id'].'</guid>
</item>';
}
echo '</channel>
</rss>';
?>
Of een andere natuurlijk....
Als je dat vraagt neem ik aan dat je niet op die link hebt geklikt.
Ja tuurlijk wel, maar vraag me af hoe ik dat in mijn code implementeer
Ja maar zou je me misschien kunnen helpen met het verwerken ervan in mijn code.
<script>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1;
}
else
{
return 0;
}
}
]]>
</script>
Hoe doe ik dat in mijn code?
Gewoon om de content van description zetten...
Dat staat toch ook overal...
En je had het ook kunnen merken als je dat gewoon had gedaan, want dan zou je geen errors meer krijgen. Behalve dan natuurlijk als die & in iets anders zit, dan zou je daar ook die cdata omheen kunnen zetten, maar weer niet om de url want dan moet je rawurlencode of zo'n andere gebruiken.