Hovednavigation

php.gif

Hvis du har et hjemmestrikket blog system, som udgiver RSS feeds, er det tænkeligt du enten ikke pinger nogen services eller sidder og gør det manuelt. Dette er tidskrævende, men selvfølgelig nødvendigt for at få lidt flere besøgende. Jeg har selv tidligere siddet og pinget 3-4 forskellige services manuelt, men det gør jeg ikke længere, og synes da heller ikke du skal gøre det. Derfor får du her en funktion i PHP som kan gøre arbejdet for dig.

Funktionen følger XML-RPC specifikationen og bruger metoden weblogUpdates.ping. Har valgt ikke at bruge weblogUpdates.extendedPing, da flere services endnu ikke understøtter denne metode.

Funktionen


<?php
/*
* Application: Martin Blog Ping v0.5
* Author: Martin Nielsen mail[at]martin-nielsen[dot]com
* URL: http://martin-nielsen.com
* Released: April 03, 2008
* Description: Et script til at pinge blog indexes
* Usage: blogPing('http://dinblogurl.com','Blog navn');
*/

//indstillinger
$blogUrl='http://dinblogurl.dk'//din blog url
$blogName='Din blog titel'//blog titel

function blogPing($blogUrl,$blogName,$pingUrl) {
    //xml
    $xmlRequest ='<?xml version="1.0"?>'."n";
    $xmlRequest.='<methodCall>'."n";
    $xmlRequest.='<methodName>weblogUpdates.ping</methodName>'."n";
    $xmlRequest.='<params>'."n";
    $xmlRequest.='<param><value><string>'.htmlspecialchars($blogName).'</string></value></param>'."n";
    $xmlRequest.='<param><value><string>' htmlspecialchars($blogUrl) . '</string></value></param>'."n";
    $xmlRequest.='</params>'."n";
    $xmlRequest.='</methodCall>';    
    //curl kald
    $cPing curl_init(); //start curl
    //curl options
    curl_setopt($cPing,CURLOPT_URL,$pingUrl); 
    curl_setopt($cPing,CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($cPing,CURLOPT_HTTPHEADER,array('Content-Type: text/xml'));
    curl_setopt($cPingCURLOPT_POST,1);
    curl_setopt($cPing,CURLOPT_POSTFIELDS,$xmlRequest);
    curl_setopt($cPingCURLOPT_TIMEOUT20);
    $responseContent =  curl_exec($cPing); //udfør kald
    $responseCode curl_getinfo($cPing); //hent header info
    curl_close($cPing); //luk curl
    preg_match('#<name>message</name>s*<value>(s*<string>)?([^</]*)(</string>s*)?</value>#i'$responseContent$msg);
    preg_match('#<name>flerror</name>s*<value>(s*<boolean>)?([^</]*)(</boolean>s*)?</value>#i'$responseContent$msg2);
    if ($responseCode['http_code']!=200) {
        return '<span style="color:red"><strong>FEJL:</strong> kunne ikke kontaktes</span><br />';
    } elseif($msg2[2]==1) {
        return '<span style="color:red"><strong>Der opstod en fejl:</strong> '.$msg[2].'</span><br />'; 
    } else {
        return ' - PING OK<br/>';
    }
}?>

Brug

Her vil vi fx pinge overskrift.dk:


<?php echo blogPing($blogUrl,$blogName,'http://overskrift.dk/ping/');?>

Pinge flere services

Ved at lave en array med ping urls kan vi hurtigt pinge x antal ping services:


<?php
// Array med ping urls
$pingUrls = array(
    'http://blogbot.dk/io/xml-rpc.php',
    'http://overskrift.dk/ping/',
    'http://rpc.twingly.com/',
    'http://blogsearch.google.com/ping/RPC2'
);
//gennemløb arrayet og kald blogPing for hver pingUrl
foreach ($pingUrls as $pingUrl) {
    echo 'Pinger: '.$pingUrl;
    flush();
    echo blogPing($blogUrl,$blogName,$pingUrl);
}
?>

Her pinger vi fx de fem nok vigtigste services for en dansk blogger

Liste over flere ping services

Anders Saugstrup har samlet en ganske fin liste over ping services som jeg vil gengive her i modificeret form (har frasorteret en håndfuld):

  • http://blogbot.dk/io/xml-rpc.php
  • http://rpc.weblogs.com/RPC2
  • http://overskrift.dk/ping/
  • http://rpc.twingly.com/
  • http://blogsearch.google.com/ping/RPC2
  • http://rpc.technorati.com/rpc/ping
  • http://ping.feedburner.com
  • http://api.moreover.com/ping
  • http://api.my.yahoo.com/RPC2
  • http://api.my.yahoo.com/rss/ping
  • http://bblog.com/ping.php
  • http://blog.goo.ne.jp/XMLRPC
  • http://blogsearch.google.com/ping/RPC2
  • http://ping.bitacoras.com
  • http://ping.bloggers.jp/rpc/
  • http://ping.myblog.jp
  • http://ping.syndic8.com/xmlrpc.php
  • http://ping.weblogalot.com/rpc.php
  • http://pingoat.com/goat/RPC2
  • http://rpc.icerocket.com:10080/
  • http://rpc.pingomatic.com/
  • http://topicexchange.com/RPC2
  • http://www.bitacoles.net/ping.php
  • http://www.blogdigger.com/RPC2
  • http://www.blogpeople.net/servlet/weblogUpdates
  • http://www.blogsnow.com/ping
  • http://www.overskrift.dk/ping/
  • http://www.popdex.com/addsite.php
  • http://wasalive.com/ping/
  • http://xping.pubsub.com/ping/

Funktionen er til fri afbenyttelse, og som altid hvis der er problemer så bare skriv. Funktionen kræver at cURL er installeret på serveren, men hvem ved kan være jeg strikker en god gammeldags fsocket løsning sammen på et tidspunkt.

Hent eksempel

Relaterede blogindlæg

Indlægget blev skrevet af Martin d. 03/04, 2008 kl 21:27

Kommentarer

RSS Feed for dette indlæg

GravImg
Skrevet af Kim Andersen
30/04 - 2008 kl. 06:48

Nu kører ejg selv med WordPress, ligesom størstedelen af alle bloggere, men en utrolig brugbar artikel hvis man en dag skal bruge noget andet, og som du siger, ikke har lyst til at pinge manuelt.
Super artikel.

GravImg
Skrevet af Martin
30/04 - 2008 kl. 06:48

Ja selvbyg er jo ikke den mest udbredte form for blog-software derude længere, af gode grunde og nogen gange får jeg da også bare lyst til at skrotte det hele og installere en wordpress, men friheden vinder alligevel altid til sidst :)

GravImg
Skrevet af Vadskær
30/04 - 2008 kl. 09:19

Jeg kører mere og mere hjemmestrikket blog, så det her er guf. Tusind tak for det. Lækkert at du deler ud af det.

GravImg
Skrevet af Martin
30/04 - 2008 kl. 06:48

Glad for det kan bruges, og glad for at se en anden som kører med hjemmestrikket system :) Har i hvert fald lige tilføjet dig min RSS læser af den grund hehe

GravImg
Skrevet af Vadskær
30/04 - 2008 kl. 09:19

Det kan bestemt bruges. Sparer mig for meget tid.

Så må jeg hellere komme i gang med at skrive lidt på min blog, når nu læser-skaren er blevet forøget.

GravImg
Skrevet af Jonas
01/05 - 2008 kl. 13:10

Det er super det der, jeg arbejder selv på at lave en blog, og vil helt klart bruge denne funktion, er der nogle ping services du vil anbefale mere end andre?

GravImg
Skrevet af Martin
01/05 - 2008 kl. 15:02

Hej Jonas,
I en lign. diskussion på Saugstrups blog kom vi frem til


    http://blogbot.dk/io/xml-rpc.php
http://overskrift.dk/ping/
http://rpc.twingly.com/
http://blogsearch.google.com/ping/RPC2




Var de vigtigste for en dansk blogger, dvs dem som jeg har taget med i eksemplet omkring at pinge flere services.

Mvh
Martin

GravImg
Skrevet af Jonas
02/05 - 2008 kl. 10:53

Ok, det havde jeg ikke lige gennemskuet, tak for hjælpen

GravImg
Skrevet af steffmeister
06/08 - 2008 kl. 14:00

hey folkens,
jeg har lidt forskellige blogs, nogle på blogger og nogle på self-hosted wordpress... pinger de automatisk, eller kan jeg ligge noget script ind i en widget eller noget for at sikre at de vigtigste services bliver pinget?

/steffmeister

GravImg
Skrevet af Martin
19/05 - 2008 kl. 12:08

Hej Steff, og velkommen til,
Wordpress er der i hvert fald indbygget ping service i, lige en engelsk guide jeg fandt da jeg ikke selv er wordpress bruger:
Log in to your WordPress weblog.
Select "Options" from the top menu.
Select "Writing" from the sub-menu.
The last option on the page is "Update Services." Add ping server as a new line within the Update Services text box.

Ved ikke med blogger...

GravImg
Skrevet af Martin Nielsen
06/08 - 2008 kl. 13:27

Undskyld til jer der bliver ved med at få en mail fra mig på denne post - spam bots har tilsyneladende fundet vej til denne post - og får ca en spam kommentar pr dag.

GravImg
Skrevet af Morten
06/08 - 2008 kl. 13:42

Ha... Jeg havde undret mig. Synes da ellers, at dit anti-spam-check er udmærket. Du må i gang med noget mere kryptisk. Så ved du, hvad du kan få weekenden til at gå med

GravImg
Skrevet af Martin Nielsen
06/08 - 2008 kl. 13:53

Hehe, ja det fungerer sådan set også fint nok, jeg tror næsten det er manuelt spam jeg får - det virker underligt at den ikke bare spammer igennem hvis det var en der decodede billede valideringen.

Men ja ja det giver da nogle hits :) - om det så er kvalitetsbesøg er jo så en helt anden side af sagen


Ny kommentar








Sikkerheds kode





DanskeWeblogs.dk | Samling af de danske blogs