Programmierer, Funker, Chatter, Freak, Nerd, Webdesigner, Ubuntu Probierer, Milestone2 Besitzer, Geocacher,
Meerschweinfütterer, 80er Serien Liebhaber, SciFi Fan



eigenen RSS verbreiten mittels Ping



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.

XML:


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>';

Sollte nicht ver?ndert werden da diese Seite die extra hier f?r erstellte Tempor?re XML ben?tigt.

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) !
smily
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"$return2);
            
$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($fp128);
            }
            
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




Impressum | Login
© by Tobias Riefer 2006 - 2012