DeletedUser88169
Gast
Guten Abend, liebe Scripter und Programmierer!
Vorweg: Ich hab schon gegoogelt
Außerdem muss ich dazu sagen, dass des Code größtenteils nur von mir zusammengesetzt ist. Außerdem ist es noch nicht "optimal". Manches könnte man sicherlich viel ordentlicher lösen. Mein Ziel ist vorerst, dass alles funktioniert.
Folgendes Problem:
Ich hab eine Internetseite, über die "Schule ohne Rassismus"-Ag unserer Schule, auf deren Startseite eine Liste von Links zu Neuigkeiten steht. Die Neuigkeiten (jeweils eine extra html-Datei) liegen im Ordner "neuigkeiten", die index-Datei, in der der folgende Code liegen soll, liegt im Stammordner. Mein Ziel ist es jetzt, dass automatisch ein RSS-Feed aus diesen Dateien erstellt werden soll. Der RSS-Feed liegt im Ordner "rss". Die Informationen, wie Name, kurze Einleitung, Link und Erstellungsdatum, sind in "span"-Tags mit passender id in der jeweiligen Neuigkeiten-Datei.
Hier mal der Code von einer dieser Neuigkeiten-Dateien (der interessante Teil):
Jetzt der Code, der aus einer Liste solcher Dateien einen RSS-Feed machen sollte:
Mit diesem Code passiert, sage und schreibe, nichts (in der php und der rss Datei).
Ich habe auch schon länger nichts mit PHP gemacht, also entschuldigt bitte meinen schlechten Programmier-Stil, denn viel ist einfach zusammen kopiert. Ich habe mich bemüht, alles verständlich zu kommentieren.
Vielen Dank im Voraus
JaRoSchm
PS: Feedback/Kritik zur Website an sich, kann auch gerne hier erscheinen.
Vorweg: Ich hab schon gegoogelt
Außerdem muss ich dazu sagen, dass des Code größtenteils nur von mir zusammengesetzt ist. Außerdem ist es noch nicht "optimal". Manches könnte man sicherlich viel ordentlicher lösen. Mein Ziel ist vorerst, dass alles funktioniert.
Folgendes Problem:
Ich hab eine Internetseite, über die "Schule ohne Rassismus"-Ag unserer Schule, auf deren Startseite eine Liste von Links zu Neuigkeiten steht. Die Neuigkeiten (jeweils eine extra html-Datei) liegen im Ordner "neuigkeiten", die index-Datei, in der der folgende Code liegen soll, liegt im Stammordner. Mein Ziel ist es jetzt, dass automatisch ein RSS-Feed aus diesen Dateien erstellt werden soll. Der RSS-Feed liegt im Ordner "rss". Die Informationen, wie Name, kurze Einleitung, Link und Erstellungsdatum, sind in "span"-Tags mit passender id in der jeweiligen Neuigkeiten-Datei.
Hier mal der Code von einer dieser Neuigkeiten-Dateien (der interessante Teil):
HTML:
<h2 id="name">1000. Schule ohne Rassismus</h2>
<span id="datum">Donnerstag, 12. Januar 2012</span><br /><br />
<p><span id="desc">Am 14. Januar begrüßen wir mit dem Domgymnasium Naumburg in Sachsen-Anhalt die 1000. Schule im bundesweiten Netzwerk von
"Schule ohne Rassismus – Schule mit Courage". Rund 750.000 Schülerinnen und Schüler, Lehrkräfte und PädagogInnen besuchen
damit eine Schule, die sich dazu verpflichtet hat, aktiv gegen Rassismus, jede Form von Diskriminierung und Mobbing vorzugehen.</span><br />
Das Netzwerk "Schule ohne Rassismus – Schule mit Courage" wurde 1995 von "Aktion Courage e.V." als Reaktion auf die rassistischen Morde
in Mölln, Solingen und andernorts gegründet. Es sollte SchülerInnen die Möglichkeit und die Unterstützung bieten, sich in ihrem
Lebensumfeld aktiv gegen Fremdenhass, Rechtsextremismus und Rassismus einzusetzen.<br />
Sanem Kleff, Leiterin der Bundeskoordination und Vorstandsvorsitzende des
// ... hier folgt noch mehr Text
</p>
<span id="link" style="color:white;">http://gymba.dyndns.org/sor/neuigkeiten/sor_schule_1000.html</span>
PHP:
<?php
// Grundlegende Dinge für den RSS-Feed
$xml = new DOMDocument('1.0', 'UTF-8');
$xml->formatOutput = true;
$roo = $xml->createElement('rss');
$roo->setAttribute('version', '2.0');
$xml->appendChild($roo);
$cha = $xml->createElement('channel');
$roo->appendChild($cha);
$hea = $xml->createElement('title',utf8_encode('Schule ohne Rassismus-Gymba'));
$cha->appendChild($hea);
$hea = $xml->createElement('description',utf8_encode('Aktuelle Neuigkeiten der Schule ohne Rassismus-Ag am Gymba'));
$cha->appendChild($hea);
$hea = $xml->createElement('language',utf8_encode('de'));
$cha->appendChild($hea);
$hea = $xml->createElement('link',htmlentities('http://gymba.dyndns.org/sor/rss/'));
$cha->appendChild($hea);
$hea = $xml->createElement('lastBuildDate',utf8_encode(date("Thu, 13 Oct 2011 11:29:07 +0000").'GMT'));
$cha->appendChild($hea);
// Verzeichnis auswählen
$verzeichnis = openDir("neuigkeiten/");
// jede Datei soll durchlaufen werden
while ($file = readDir($verzeichnis)) {
if ($file != "." && $file != "..") {
// URL, die durchsucht werden soll
$url = "neuigkeiten/" . $file;
// Zeichenfolge vor relevanten Einträgen
$startstring_name = "<h2 id=\"name\">";
$startstring_datum = "<span id=\"datum\">";
$startstring_desc = "<span id=\"desc\">";
$startstring_link = "<span id=\"link\" style=\"color:white;\">";
// bis zum nächsten html tag bzw. Zeichenfolge nach relevanten Einträgen
$endstring_name = "<";
$endstring_datum = "<";
$endstring_desc = "<";
$endstring_link = "<";
$file2 = @fopen ($url,"r");
if (trim($file2) == "") {
echo "Service out of order";
} else {
$i=0;
while (!feof($file2)) {
$zeile[$i] = fgets($file2,2000);
$i++;
}
fclose($file2);
}
// Nun werden die Daten entsprechend gefiltert.
for ($j=0;$j<$i;$j++) {
if ($resa_name = strstr($zeile_name[$j],$startstring_name)) {
$resb_name = str_replace($startstring_name, "", $resa_name);
$endstueck_name = strstr($resb_name, $endstring_name);
$resultat_name .= str_replace($endstueck_name,"",$resb_name);
$resultat_name .= "; ";
}
}
for ($j=0;$j<$i;$j++) {
if ($resa_datum = strstr($zeile_datum[$j],$startstring_datum)) {
$resb_datum = str_replace($startstring_datum, "", $resa_datum);
$endstueck_datum = strstr($resb_datum, $endstring_datum);
$resultat_datum .= str_replace($endstueck_datum,"",$resb_datum);
$resultat_datum .= "; ";
}
}
for ($j=0;$j<$i;$j++) {
if ($resa_desc = strstr($zeile_desc[$j],$startstring_desc)) {
$resb_desc = str_replace($startstring_desc, "", $resa_desc);
$endstueck_desc = strstr($resb_desc, $endstring_desc);
$resultat_desc .= str_replace($endstueck_desc,"",$resb_desc);
$resultat_desc .= "; ";
}
}
for ($j=0;$j<$i;$j++) {
if ($resa_link = strstr($zeile_link[$j],$startstring_link)) {
$resb_link = str_replace($startstring_link, "", $resa_link);
$endstueck_link = strstr($resb_link, $endstring_link);
$resultat_link .= str_replace($endstueck_link,"",$resb_link);
$resultat_link .= "; ";
}
}
// Dieser Block ist/war nur zum Test, ob etwas in den Variablen steht. Hier wurde nichts ausgegeben.
echo $resultat_name;
echo $resultat_datum;
echo $resultat_desc;
echo $resultat_link;
// jeweiliges RSS-Item anlegen/definieren
echo "<a href=\"neuigkeiten/$file\">$file</a><br>\n";
$itm = $xml->createElement('item');
$cha->appendChild($itm);
$dat = $xml->createElement('title',utf8_encode($resultat_name));
$itm->appendChild($dat);
$dat = $xml->createElement('description',utf8_encode($resultat_desc));
$itm->appendChild($dat);
$dat = $xml->createElement('link',htmlentities('LINK ZUM ARTIKEL'));
$itm->appendChild($dat);
$dat = $xml->createElement('pubDate',utf8_encode($resultat_datum));
$itm->appendChild($dat);
$dat = $xml->createElement('guid',htmlentities('LINK ZUM ARTIKEL'));
$itm->appendChild($dat);
}
}
// Verzeichnis schließen
closeDir($verzeichnis);
// RSS speichern
$xml->save('rss/feed.xml');
?>
Ich habe auch schon länger nichts mit PHP gemacht, also entschuldigt bitte meinen schlechten Programmier-Stil, denn viel ist einfach zusammen kopiert. Ich habe mich bemüht, alles verständlich zu kommentieren.
Vielen Dank im Voraus
JaRoSchm
PS: Feedback/Kritik zur Website an sich, kann auch gerne hier erscheinen.