eigenen RSS verbreiten mittels Ping |
02.01.2010 23:58 -
Programmieren
Tags: rss ping fsockopen php xml
Permalink: http://www.Tobias-Riefer.de/116.html
Am 01.01. hab ich mit großer Hilfe von 'skoch' dieses Ping-Script gebastelt.
Es steuert die API-Schnittstelle von Seiten wie feedburner, bloggerei und co. an.
Worauf diese Webseite dann veranlasst wird die RSS-Feed-Datei (.xml) abzurufen und somit der neuste Blogeintrag schneller gelistet wird.
Hier die Daten eintragen (in der eckigen Klammer stehend).
Ganz wichtig ist in dem falle der Port 80 (:80) !
Hier das ganze Script:
Vielen Dank fürs lesen
Toby
© Tobias Riefer - 02.01.2010 - 23:58 Uhr
Es steuert die API-Schnittstelle von Seiten wie feedburner, bloggerei und co. an.
Worauf diese Webseite dann veranlasst wird die RSS-Feed-Datei (.xml) abzurufen und somit der neuste Blogeintrag schneller gelistet wird.
XML:Sollte nicht verändert werden da diese Seite die extra hier für erstellte Temporäre XML benötigt.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
$this->data = '<?xml version="1.0"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
<params>
<param>
<value>' . $this->name . '</value>
</param>
<param>
<value>' . $this->url . '</value>
</param>
</params>
</methodCall>';
PHP:
1:
2:
3:
$blogPing = new BlogPing('[Blogname]', '[Link zu der RSS XML]');
$blogPing->ping('http://ping.irgendwas.de:80/'); // Port 80 nicht vergessen
Hier die Daten eintragen (in der eckigen Klammer stehend).
Ganz wichtig ist in dem falle der Port 80 (:80) !
Hier das ganze Script:
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:
<?php
/**
* @author Tobias Riefer
* @author skoch @ cybton.com
* @copyright 2010
*/
<?php
class BlogPing {
function BlogPing($name, $url) {
$this->name = (string) $name;
$this->url = (string) $url;
$this->data = '<?xml version="1.0"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
<params>
<param>
<value>' . $this->name . '</value>
</param>
<param>
<value>' . $this->url . '</value>
</param>
</params>
</methodCall>';
}
function ping($url) {
$this->parsed_url = parse_url($url);
$return = $this->sendPing($url);
$result = explode("\r\n\r\n", $return, 2);
$header = isset($result[0]) ? $result[0] : '';
$content = isset($result[1]) ? $result[1] : '';
echo strip_tags($content); // Rückmeldung beim Pingen
}
function sendPing($url) {
$fp = fsockopen($this->parsed_url['host'], $this->parsed_url['port'], $errno, $errstr);
if(!$fp)
{
echo("<li>Server nicht connectet, fsockopen() - " . $this->parsed_url['host'] . "</li><br />");
} else {
echo("<li>Erfolgreich - " . $this->parsed_url['host'] . "</li><br />");
fputs($fp, "POST ".$this->parsed_url['path'].$this->parsed_url['query']." HTTP/1.1\r\n");
fputs($fp, "Host: ".$this->parsed_url['host']."\r\n");
fputs($fp, "Content-Type: text/xml; charset=utf-8\r\n");
fputs($fp, "Content-length: ".strlen($this->data)."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $this->data);
}
$result = '';
while(!feof($fp)) {
$result .= fgets($fp, 128);
}
fclose($fp);
return $result;
}
}
$blogPing = new BlogPing('[Blogname]', '[Link zu der RSS XML]');
$blogPing->ping('http://ping.irgendwas.de:80/'); // Port 80 nicht vergesesn
?>
Liste aller von mir angepingten:
$blogPing->ping('http://rpc.bloggerei.de:80/ping/');
$blogPing->ping('http://rpc.pingomatic.com:80/');
$blogPing->ping('http://api.moreover.com:80/RPC2');
$blogPing->ping('http://api.moreover.com:80/ping');
$blogPing->ping('http://www.blogshares.com:80/rpc.php');
$blogPing->ping('http://ping.weblogalot.com:80/rpc.php');
$blogPing->ping('http://rpc.blogrolling.com:80/pinger/');
$blogPing->ping('http://rpc.weblogs.com:80/RPC2');
$blogPing->ping('http://www.feedsubmitter.com:80/');
$blogPing->ping('http://blo.gs:80/ping.php');
$blogPing->ping('http://www.pingerati.net:80/');
$blogPing->ping('http://www.pingmyblog.com:80/');
$blogPing->ping('http://geourl.org:80/ping');
$blogPing->ping('http://ipings.com:80/');
$blogPing->ping('http://www.weblogalot.com:80/ping');
$blogPing->ping('http://feedburner.google.com:80/fb/a/ping');
Vielen Dank fürs lesen
Toby
Foto test
© Tobias Riefer - 02.01.2010 - 23:58 Uhr
Kommentare
Initialisiere...






