Feed check, kijken of het een xml/rss is
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
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
<?php
else if(isset($_GET['realfeed']))
{
if(empty(trim(@file_get_contents($_GET['realfeed']))))
{
echo 'leeg';
}
else
{
$Xml = @simplexml_load_file($_GET['realfeed']);
if($Xml === false)
{
echo 'nee';
}
else
{
//echo 'ja';
// Hier inhoud checken: item, title, pubDate ect..
//foreach($Xml->item as $item)
//{
$titel = $Xml->$title;
if(!empty($titel))
{
echo 'ja';
echo '<br />'.$titel;
}
else {
echo 'geen'; // geen title gevonden.
echo '<br />'.$titel;
}
//}
}
}
}
?>
else if(isset($_GET['realfeed']))
{
if(empty(trim(@file_get_contents($_GET['realfeed']))))
{
echo 'leeg';
}
else
{
$Xml = @simplexml_load_file($_GET['realfeed']);
if($Xml === false)
{
echo 'nee';
}
else
{
//echo 'ja';
// Hier inhoud checken: item, title, pubDate ect..
//foreach($Xml->item as $item)
//{
$titel = $Xml->$title;
if(!empty($titel))
{
echo 'ja';
echo '<br />'.$titel;
}
else {
echo 'geen'; // geen title gevonden.
echo '<br />'.$titel;
}
//}
}
}
}
?>
Feeds die ik test:
- http://rss.politie.nl/rss/ab/gemeenten/overijssel/hengelo.xml (uitkomst: leeg, dus deze komt al niet verder dat file_get_contents)
- http://projects.knmi.nl/RSSread/rss_KNMIpersberichten.php (uitkomst: Fout, deze pakt de title niet in de feed)
en waarom je die knmi feed wilt afkeuren, is me ook niet duidelijk. Er staan wel title's in. Zowel voor de feed zelf, als voor de berichten in de feed.
Als ik $Xml->$item->$title op wil halen krijg ik een foutmelding dat $item niet bestaat. met $Xml->$title krijg ik geen foutmelding maar dan is er geen waarde.
Edit:
Ik ben er al achter wat ik fout deed bij het ophalen van de titel, dit moet het natuurlijk zijn zonder de $. $titel = $Xml->channel->item->title;
Gewijzigd op 21/10/2015 16:19:57 door Ferdi R
Ik kan je wel zeggen dat de Content-Type van het xml bestand verkeerd is, en word daarom niet als een xml bestand weergeven.
Vaak zijn character encoderingen een ramp in RSS (komen niet overeen met wat ze claimen te zijn).
Daarnaast, gebruik cURL in plaats van file_get_contents(). Het komt geregeld voor dat je een of meer keer wordt geredirect voordat het uiteindelijke RSS-bestand geserveerd wordt.