| |
<?php
// ======================================================= // // Spiegel.de RDF Feed - SpiegelOnline Schlagzeilen in RDF // // // // written by Henrik Teichmann <t@yaos.de> & <www.yaos.de> // // // // Thanks to yah for recode_charset() // // and nils for regex help // // // // The given Content is Copyrighted by Spiegel.De Online // // // // ======================================================= //
if(is_file("./data.txt")) { if(fileatime("./data.txt")+5400 < time()) { $file = file("http://www.spiegel.de/schlagzeilen/"); $pointer = fopen("./data.txt", 'w+'); fwrite($pointer, implode("", $file)); fclose($pointer); } else { $file = file("./data.txt"); } }
$News = Array();
foreach($file as $line) { if(eregi("<div class=\"markvisited\">", $line)) { $parse = "on"; } // Schlagzeilen ueberschrift (Tag usw) if($parse == "on" && eregi("^<p>", $line)) { $line = preg_replace("/<(.*?)>/", "", $line); $line = trim($line); list($timestamp, $day, $month, $year) = ParseDate($line); } if($parse == "on" && eregi("^<a", $line)) { // Title preg_match("/<font color=\"black\">(.*?)<\/font>/", $line, $match); $title = trim($match[1]); $title = strip_tags($title); $title = recode_charset($title, "HTML", "ASCII"); $title = recode_charset($title, "ASCII", "UNICODE");
// Datum der schlagzeile und Kategorie preg_match("/<font color=\"#777777\".*>(.*?)<\/font>/", $line, $match); $line_date = trim($match[1]); $line_date = eregi_replace("[(,)]", "", $line_date); list($categorie, $line_date) = split(" ", $line_date, 2); $categorie = trim($categorie); preg_match("/\s(\d{2})\:(\d{2})/", $line_date, $zeit); $line_date = mktime($zeit[1], $zeit[2], 0, $month, $day, $year); $line_date."<br>";
// URL preg_match("/href=\"(.*?)\"/", $line, $match); $url = trim($match[1]); if(!eregi("^http", $url)) { $url = "http://www.spiegel.de".$url; } $url = recode_charset($url, "HTML", "ASCII"); $url = recode_charset($url, "ASCII", "UNICODE");
// Alles in Array packen $News[] = Array( "title" => $title, "url" => $url, "categorie" => $categorie, "date" => $line_date ); } if($parse == "on" && eregi("</div>", $line)) { $parse = "off"; } }
// Jetzt wird das RDF erstellt print "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n"; print "<rdf:RDF\n"; print "xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n"; print "xmlns=\"http://my.netscape.com/rdf/simple/0.9/\">\n\n";
for($i=0;$i<count($News);$i++) { extract($News[$i]); if(!empty($title) && !empty($url)) { print "<item>\n"; print " <title>".$title."</title>\n"; print " <url>".$url."</url>\n"; print " <categorie>".$categorie."</categorie>\n"; print " <date>".$line_date."</date>\n"; print "</item>\n\n"; } }
print "</rdf:RDF>\n";
// ######################## // Different functions for // ########################
function ParseDate($date) { list(, $date) = split(",", $date); list(, $day, $month, $year) = split("\ ", $date); $day = ereg_replace("\.", "", $day); $month = FormatMonth($month); return Array(mktime(0, 0, 0, $month, $day, $year), $day, $month, $year); }
function FormatMonth($month) { switch(strtolower($month)) { case "januar": return "01"; break; case "februar": return "02"; break; case "märz": return "03"; break; case "april": return "04"; break; case "mai": return "05"; break; case "juni": return "06"; break; case "juli": return "07"; break; case "august": return "08"; break; case "september": return "09"; break; case "oktober": return "10"; break; case "november": return "11"; break; case "dezember": return "12"; break; } }
function recode_charset($string,$cs_from,$cs_to) { $trans_tbl["ASCII"] = array("&", "¡", "¢", "£", "¤", "¥", "¦", "§", "¨", "©", "ª", "«", "¬", "", "®", "¯", "°", "±", "²", "³", "´", "µ", "¶", "·", "¸", "¹", "º", "»", "¼", "½", "¾", "¿", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "×", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "÷", "ø", "ù", "ú", "û", "ü", "ý", "þ", "ÿ");
$trans_tbl["UNICODE"] = array("&", "¡", "¢", "£", "¤", "¥", "¦", "§", "¨", "©", "ª", "«", "¬", "­", "®", "¯", "°", "±", "²", "³", "´", "µ", "¶", "·", "¸", "¹", "º", "»", "¼", "½", "¾", "¿", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "×", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "÷", "ø", "ù", "ú", "û", "ü", "ý", "þ", "ÿ");
$trans_tbl["HTML"] = array("&", "¡", "¢", "£", "¤", "¥", "¦", "§", "¨", "©", "ª", "«", "¬", "­", "®", "¯", "°", "±", "²", "³", "´", "µ", "¶", "·", "¸", "¹", "º", "»", "¼", "½", "¾", "¿", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "×", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "÷", "ø", "ù", "ú", "û", "ü", "ý", "þ", "ÿ");
return str_replace($trans_tbl[$cs_from], $trans_tbl[$cs_to], $string); }
?>
© Henrik Teichmann
|
|