ping all ping-service-site for non-blog website

eVoDarKStorM

New Member
I got a nice script from this blog. this is really problem to me because my site is php site, so i didnt got listed fast everytime i posted content. it doesnt have ping service that run everytime u post content like wordpress. this script is really helpfull. put it on loading after post content page.

source : http://snippets.dzone.com/posts/show/3329
PHP Code: \[code\]<?php
   // Please, edit these variables to your needs

   $blogTitle="Title Of your blog";
   $blogUrl="http://www.yourblog.url/";
   $pingListFile="pinglist.txt";
   $showDebugInfo=FALSE; // Do you want verbose output?

   // Stop editing here

   // PingRPC.php
   //
   // 2007 by Sascha Tayefeh
   // http://www.tayefeh.de
   //
   // This is a PHP5-based XML-RPC ping script. It reads a one-column
   // fully qualified URL-list from a file ($pingListFile). Here is
   // an example how this file must look like:
   // ----------------------
   // http://rpc.icerocket.com:10080/
   // http://rpc.pingomatic.com/
   // http://rpc.technorati.com/rpc/ping
   // http://rpc.weblogs.com/RPC2
   // ----------------------

   $replacementCount=0; 
   $userAgent="pingrpc.php by tayefeh";

   // Read pinglist file. Must contain one fully qualified URL
   // (e.g: http://rpc.technorati.com/rpc/ping) PER LINE (-> 
   // delimiter is an ASCII-linebreak)
   $fp=fopen($pingListFile,"r");
   while ( ! feof( $fp) )
   {
      $line = trim(fgets( $fp, 4096));
      // get the hostname
      $host=$line; // Make a copy of $line
      $host=preg_replace('/^.*http:\/\//','',$host); // Delete anything before http://
      $host=preg_replace('/\/.*$/','',$host); // Delete anything after behind the hostname

      // get the path 
      $path=$line; // Make another copy of $line
      $path=preg_replace('/^.*http:\/\/[a-zA-Z0-9\-_\.]*\.[a-zA-Z]{1,3}\//','',$path,-1,$replacementCount); // Delete anything before the path
      if(!$replacementCount) $path=''; // if there was no replacement (i.e. no explicit path), act appropiately
      if($host) $myList[$host]=$path;
   }
   echo "<h1>Ping process started</h1>";

   echo "<p>Reading URLs from file $pingListFile: ";
   echo count($myList)." urls read.</p>";

   // Use DOM to create the XML-File
   $xml= new DOMDocument('1.0');
   $xml->formatOutput=true;
   $xml->preserveWhiteSpace=false;
   $xml->substituteEntities=false;

   // Create the xml structure
   $methodCall=$xml->appendChild($xml->createElement('methodCall'));
   $methodName=$methodCall->appendChild($xml->createElement('methodName'));
   $params=$methodCall->appendChild($xml->createElement('params'));
   $param[1]=$params->appendChild($xml->createElement('param'));
   $value[1]=$param[1]->appendChild($xml->createElement('value'));
   $param[2]=$params->appendChild($xml->createElement('param'));
   $value[2]=$param[2]->appendChild($xml->createElement('value'));

   // Set the node values
   $methodName->nodeValue="weblogUpdates.ping";
   $value[1]->nodeValue=$blogTitle;
   $value[2]->nodeValue=$blogUrl;

   $xmlrpcReq = $xml->saveXML(); // Write the document into a string
   $xmlrpcLength = strlen( $xmlrpcReq ); // Get the string length.

   echo "Here&apos;s the xml-message I generated (size: $xmlrpcLength bytes):";

   echo "\n<pre>\n";
   echo htmlentities($xmlrpcReq);
   echo "</pre>";

   echo "<dl>";

   // Proceed every link read from file
   foreach ( $myList as $host => $path)
   {
      if($showDebugInfo) echo "<hr/>";

      echo "<dt><strong>Pinging host: $host  </strong>";
      $httpReq  = "POST /" . $path . " HTTP/1.0\r\n";
      $httpReq .= "User-Agent: " . $userAgent. "\r\n";
      $httpReq .= "Host: " . $host . "\r\n";
      $httpReq .= "Content-Type: text/xml\r\n";
      $httpReq .= "Content-length: $xmlrpcLength\r\n\r\n";
      $httpReq .= "$xmlrpcReq\r\n";
      echo "</dt>";

      if($showDebugInfo)
      {
     echo "<dd><strong>Request:</strong><pre><span style=\"color: #cc9900\">".htmlentities($httpReq)."</span></pre>";
     echo "<strong>Answer</strong>:<span style=\"color: #99cc00\"><pre>";
      }

      // Actually, send ping
      if ( $pinghandle = @fsockopen( $host, 80 ) )
      {
     @fputs( $pinghandle, $httpReq );
     while ( ! feof( $pinghandle ) )
     { 
        $pingresponse = @fgets( $pinghandle, 128 );
        if($showDebugInfo) echo htmlentities($pingresponse);
     }
     @fclose( $pinghandle );
      }
      if($showDebugInfo) echo "</span></pre></dd>";
   }
   echo "</dl>";
   echo "<p>FINISHED</p>";

?>\[/code\] and this is the rpc ping site list 2010 :

http://onlinemlmexplosion.com/sjadkvh/pingservices2010.txt

hope it helpful
 
Back
Top