RSS-Feeds von EUR-Lex auslesen

Wer sich als Nutzer auf EUR-Lex registrieren lässt, kann die Ergebnisse von Recherchen als RSS-Feed speichern. Diese Feeds können mit Feedreadern abonniert  werden. Sie können aber auch als Grundlage für ein eigenständiges Informationsangebot, beispielsweise einen Profildienst, genutzt werden.

Wie der Feed mit PHP ausgelesen und als HTML-Seite ausgegeben werden kann, zeigt das folgende Skript.

<!doctype html>

<html lang="en">
<head>
  <meta charset="utf-8" />
  <title>EUR-Lex RSS</title>

<style type='text/css'>

body {
margin-left: 15%;
margin-right: 25%;
font-family: Sans-Serif, Arial;
color:#494949;
font-size: 12px;
}

ol {
margin-left: 4px;
margin-top: 1px;
margin-bottom: 1px;
} 

li {
margin-top: 2px;
margin-bottom: 13px;
border-bottom: 1px dotted #222222;
padding: 19px;
font-size: 12px;
}

a:link.bib {
color:#494949;
text-decoration:none;
font-family: Sans-Serif, Arial;
}

a:visited.bib {
color:#494949;
text-decoration:none;
font-family: Sans-Serif, Arial;
}

a:hover.bib {
color:#FF0000;
text-decoration:none;
font-family: Sans-Serif, Arial;
}
</style>
</head>

<body>

<?php 

// Hier werden die URLs der RSS-Feeds eingetragen

// Agrarförderung
$url0='http://eur-lex.europa.eu/DE/display-feed.rss?myRssId=6hIgTUOAZNsAZUDkeYrwkw%3D%3D';

// Tierschutz
$url1='http://eur-lex.europa.eu/DE/display-feed.rss?myRssId=6hIgTUOAZNvLFxv%2Bo0iRQg%3D%3D';

if($_GET["url"] == "url0") {
    $url = $url0;
    $headline = "<h1>Agrarförderung</h1>";
    }

if($_GET["url"] == "url1") {
   $url = $url1;
   $headline = "<h1>Tierschutz</h1>";
   }

$feed_content = file_get_contents($url);

echo $headline. 'Diese Anfrage abonnieren: '. '<a href="'. $url. '" target="_blank">'. 'RSS-Feed</a>';

// XML DOM-Parser
$dom = new DOMDocument();
$dom->loadXML($feed_content);

echo "<ol>";

// Finde Datensätze
$items = $dom -> getElementsByTagName('item'); 

$i=0;

foreach ($items as $item) {

// Anzahl der Einträge begrenzen
	if ($i >= 10) {
        break;
        }

// Titel ausgeben, CELEX-Nummer fett
$titles = $item -> getElementsByTagName('title');
	foreach ($titles as $title){
   	$title = $title -> nodeValue;
   	$title = preg_replace ('/^(CELEX.{12})/', '<b><font color="#333333">$1</font></b>',  $title);
   	}

// Link auf die deutschsprachige Fassung ausgeben
$links = $item -> getElementsByTagName('link');
	foreach ($links as $link){
   	$link = $link -> nodeValue;
   	$link = preg_replace ('/AUTO/', 'DE/TXT',  $link);
  	}

$authors = $item -> getElementsByTagName('author');
	foreach ($authors as $author){
     	$author = $author -> nodeValue;
     	}

// Datum wird umgewandelt
$pubdates = $item -> getElementsByTagName('pubDate');
	foreach ($pubdates as $pubdate){
     	$pubdate = $pubdate -> nodeValue;
     	$pubdate = strtotime($pubdate);
     	$pubdate = date("d.m.Y", $pubdate);
  	}

// Ausgabe
echo '<li><a class='. '"bib"'. 'target="_blank"'. 'href="'. $link. '">'. $title. '</a>'. '<br /><br />Veröffentlicht am:<b> '. $pubdate. '</b>; &nbsp;Urheber: '. $author. '</li>';
 $i++;
}
echo "</ol></body></html>";
?>
Advertisements