-
Notifications
You must be signed in to change notification settings - Fork 0
/
rijksoverheid-rss.php
115 lines (84 loc) · 3.09 KB
/
rijksoverheid-rss.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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
if(isset($_GET["q"])) $query=$_GET["q"]; else $query=NULL;
if (trim($query)=="")
{
?>
<meta name="viewport" content="width=device-width, initial-scale=1">
<form action="rijksoverheid-rss.php">
<input name="q" placeholder="rotterdam OR amsterdam OR Schiedam"><br>
<input type="submit"></form>
<?php
die();
}
//header('Content-Type: application/rss+xml; charset=utf-8');
header('Content-Type: text/plain; charset=utf-8');
?><rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
>
<channel>
<title>Rijksoverheid - <?php print $query; ?></title>
<lastBuildDate><?php print date("r"); ?></lastBuildDate>
<language>nl</language>
<sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<generator>custom</generator>
<description>custom</description>
<link>rijksoverheid-rss.php?<?php print $query; ?></link>
<?php
libxml_use_internal_errors(true);
$body=file_get_contents("https://www.rijksoverheid.nl/zoeken?trefwoord=".urlencode($query)."&sorteren-op=datum");
$dom_body = new DOMDocument();
$dom_body->validateOnParse = true;
@$dom_body->loadHTML($body);
$ul=$dom_body->getElementsByTagName('ol')->item(0);
$loop=0;
$pubDate_old=date("r"); // failsafe
$check=TRUE;
while($loop <= 10 && $check)
{
$item=$ul->getElementsByTagName('li')->item($loop);
// print $item->nodeValue;
$title= $item->getElementsByTagName('h3')->item(0)->textContent;
$description= $item->getElementsByTagName('p')->item(0)->nodeValue;
$link= $item->getElementsByTagName('a')->item(0)->getAttribute('href');
$datum_class = $item->getElementsByTagName('p');
$loop++;
$check=$ul->getElementsByTagName('li')->item($loop+1);
// process
// if($datum_class->item(1)!==null)
// {
// $pubDate= substr($datum_class->item(1)->textContent, strpos($datum_class->item(1)->textContent,"|")+2, 10);
// }
// else
// {
preg_match("/\/\d{4}\/\d{2}\/\d{2}\/.*$/", $link, $datum );
if (isset($datum[0])) $pubDate= substr($datum[0],1,11);
// }
if (!isset($pubDate))
$pubDate=$pubDate_old;
else
$pubDate_old=$pubDate;
print "\t<item>\n";
print "\t\t<title>".clean_up($title)."</title>\n";
print "\t\t<link>https://www.rijksoverheid.nl$link</link>\n";
print "\t\t<guid>https://www.rijksoverheid.nl$link</guid>\n";
print "\t\t<description>".clean_up($description)."</description>\n";
// print "\t\t<pubDate>".date("r",strtotime($pubDate))." - ". $datum_class->item(1)->textContent."</pubDate>\n";
print "\t\t<pubDate>".date("r",strtotime($pubDate))."</pubDate>\n";
print "\t</item>\n";
}
function clean_up($subject)
{
$subject=str_replace("&","&",$subject); //was &
$subject=str_replace(">",">",$subject);
$subject=str_replace("<","<",$subject); // was <
$subject=str_replace(chr(8),"",$subject); // edge case, added dec 8th 2015 (backspace)
return trim($subject);
}
?> </channel>
</rss>