rrs feed
dominikki
- xml
1.wie kann ich dieses rrs feed auf meine hp einbauen?
http://www.moviereporter.net/rss.php
2.brauche ich dafür die rechte, damit ich das einbauen kann bzw darf
Hallo dominikki.
1.wie kann ich dieses rrs feed auf meine hp einbauen?
http://www.moviereporter.net/rss.php
Welche Techniken stehen dir zur Verfügung und welche davon beherrschst du?
2.brauche ich dafür die rechte, damit ich das einbauen kann bzw darf
Gut zu wissen.
Einen schönen Mittwoch noch.
Gruß, Ashura
ich behersche html natürlich
javascripts kann ich umändern,php fast nix
also kann das mir jemand genau erklären
Hallo Freunde des gehobenen Forumsgenusses,
javascripts kann ich umändern,php fast nix
also kann das mir jemand genau erklären
Du musst einen HTTP-GET-Request an den Host, von dem du das RSS beziehen willst senden und ihn bitten, "/rss.php" rauszurücken. Dazu kannst du untenstehende Funktion verwenden, sie stammt aus meinem Linkchecker und unterliegt der GPL, wenn dir das nicht passt musst du halt nach anderen Quellen suchen oder dir selber eine schreiben (HTTP/1.1 RFC).
Dann musst du das erhaltene RSS parsen und ausgeben.
Ich würde das RSS übrigens nicht bei jedem Seitenaufruf
herunterladen, sondern cachen.
/**
* Sendet einen HTTP-GET-Request an einen Server und analysiert die Antwort.
*
* @param string URL, die abgerufen werden soll.
* @param int Zeit in Sekunden, die die Methode maximal verbraten darf.
* @param string Weitere Header, die gesendet werden sollen. Es können beliebig viele weitere Parameter angehängt werden, die dann als Header mitgeschickt werden.
* @return array Assoziatives Array, in dessen Schlüssel '_request' der gesendete HTTP-Request, in '_head' der empfangene Header und in '_body' der empfangene Body steht.
*/
function http_get(
$url,
$timeout = 30,
$useragent = 'User-Agent: Selflinkchecker 1.0 (http://aktuell.de.selfhtml.org/pfad/zum/Artikel)'
) {
$timeout = (int)round($timeout/2+0.0000000001);
$return = array();
$port = 80;
$inf = parse_url($url);
if (!isset($inf['scheme']) or $inf['scheme'] !== 'http') return array('status' => -1);
if (!isset($inf['host'])) return array('status' => -2);
$host = $inf['host'];
if (!isset($inf['path'])) return array('status' => -3);
$path = $inf['path'];
if (isset($inf['query'])) $path .= '?'.$inf['query'];
if (isset($inf['port'])) $port = $inf['port'];
$pointer = fsockopen($host, $port, $errno, $errstr, $timeout);
if (!$pointer) return array('status' => -4, 'errstr' => $errstr, 'errno' => $errno);
socket_set_timeout($pointer, $timeout);
$head =
'GET '.$path.' HTTP/1.0'."\r\n".
'Host: '.$host."\r\n";
if (isset($inf['user']))
$head .= 'Authorization: Basic '.base64_encode($inf['user'].':'.(isset($inf['pass']) ? $inf['pass'] : ''))."\r\n";
if (func_num_args() > 2) {
for ($i = 2; $i < func_num_args(); $i++) {
$arg = func_get_arg($i);
if (strpos($arg, ':') !== false and strpos($arg, "\r") === false and strpos($arg, "\n") === false) {
$head .= $arg."\r\n";
}
}
}
else $head .= $useragent."\r\n";
$head .=
'Connection: close'."\r\n"."\r\n"
;
fputs($pointer, $head);
$response = '';
$status = socket_get_status($pointer);
while (!$status['timed_out'] && !$status['eof']) {
$response .= fgets($pointer);
$status = socket_get_status($pointer);
}
fclose($pointer);
if ($status['timed_out']) {
return array('status' => -5, '_request' => $head);
}
$res = str_replace("\r\n", "\n", $response);
$res = str_replace("\r", "\n", $res);
$res = str_replace("\t", ' ', $res);
$temp = explode("\n\n", $res, 2);
$head = $temp[0];
$body = $temp[1];
$ares = explode("\n", $head);
$first_line = explode(' ', array_shift($ares), 3);
$return['status'] = trim($first_line[1]);
$return['reason'] = trim($first_line[2]);
foreach ($ares as $line) {
$temp = explode(':', $line, 2);
if (isset($temp[0]) and isset($temp[1])) {
$return[strtolower(trim($temp[0]))] = trim($temp[1]);
}
}
$return['_body'] = $body;
$return['_head'] = $head;
$return['_request'] = $head;
return $return;
}
Gruß
Alexander Brock
Hallo,
1.wie kann ich dieses rrs feed auf meine hp einbauen?
http://www.moviereporter.net/rss.php
Du brauchst ein serverseitiges Script (clientseitig geht nicht wegen Same Origin Policy), das die RSS-Datei auf Deinen Server herunterlädt und dann den Inhalt als HTML aufbereitet. Für PHP findest Du bspw. unter http://www.hotscripts.com/PHP/Scripts_and_Programs/Web_Fetching/index.html einige fertige Lösungen dafür (die Liste, auf die der Link zeigt, beinhaltet auch anderes Zeugs, halte halt nach RSS ausschau).
2.brauche ich dafür die rechte, damit ich das einbauen kann bzw darf
Du brauchst im Allgemeinen die Erlaubnis desjenigen, der den RSS-Feed veröffentlicht (vor allem, wenn Du nur ein einziges Feed einbindest). Manchmal steht auf der Webseite selbst etwas dazu, was erlaubt ist und was nicht, wenn nicht: E-Mail hinschreiben und fragen.
Viele Grüße,
Christian