21 Eylül 2013

PHP Ping Servislerini Pingleme



Php ile ping servislerini wordpress gibi pingleme yapabiliriz. bunun için aşağıdaki hazır kod işimize yarayacaktır. yine yöntem olarak curl kullanılmıştır.

Bu ne işe yarar: Pingleme servisleri ile gönderileriniz arama motorlarına bildirilir ve siteniz hızlı bir şekilde index alır. WordPress bu sistemi kullanmaktadır.

Pingleme işlemini yeni bir içerikten sonra yapmanız daha iyi olacaktır.




<?php
//Sonuc kodlari anlamlari : http://www.google.com/support/webmasters/bin/answer.py?hl=tr&answer=40132

if (!function_exists('xmlrpc_encode_request'))
{
    function xmlrpc_encode_request($yontem, $iki)
    {
        $cikti .= '<?xml version="1.0"?>';
        $cikti .= '<methodCall>';
        $cikti .= '<methodName>'.$yontem.'</methodName>';
        $cikti .= '<params>';
        $cikti .= '<param><value><string>'.$iki[0].'</string></value></param>';
        $cikti .= '<param><value><string>'.$iki[1].'</string></value></param>';
        $cikti .= '</params></methodCall>';
        return $cikti;
    }
}
function pingle($pingurl,$site,$url,$yontem) {
    $xmlrpc = xmlrpc_encode_request($yontem,array($site, $url));
    preg_match('@^(?:http://)?([^/]+)@i', $pingurl, $cikti);
    $pinghost = $cikti[1];
    $headers[] = "Host: ".$pinghost;
    $headers[] = "Content-type: text/xml";
    $headers[] = "User-Agent: LPS";
    $headers[] = "Content-length: ".strlen($xmlrpc) . "rn";
    $headers[] = $xmlrpc;
    $chi = curl_init();
    curl_setopt($chi,CURLOPT_URL,$pingurl);
    curl_setopt($chi,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($chi, CURLOPT_CONNECTTIMEOUT, 4);
    curl_setopt($chi,CURLOPT_HTTPHEADER,$headers);
    curl_setopt($chi,CURLOPT_CUSTOMREQUEST,'POST');
    $html = curl_exec( $chi );
    $sonuc = curl_getinfo($chi);
    echo "Gonderildi : ".$pinghost.", Sonuc : ".$sonuc["http_code"]."<br />";
    curl_close($chi);
    unset($headers);
}

set_time_limit(0);

$pinglenecek_url = "http://www.123123123123.com/123/123/123123123.html";
$site_adi = "Site Ad&#305;";

$ping_siteleri = array("http://rpc.pingomatic.com",
      "http://rpc.twingly.com",
      "http://ping.blo.gs/",
      "http://ping.feedburner.com",
      "http://ping.syndic8.com/xmlrpc.php",
      "http://ping.weblogalot.com/rpc.php",
      "http://rpc.weblogs.com/RPC2",
      "http://blo.gs/ping.php",
      "http://www.pingmyblog.com",
      "http://ipings.com");
 
foreach ($ping_siteleri as $ping_sitesi) {
    pingle($ping_sitesi,$site_adi,$pinglenecek_url,"weblogUpdates.ping");
    pingle($ping_sitesi,$site_adi,$pinglenecek_url,"weblogUpdates.extendedPing");
}
?>


barisla.com

Hiç yorum yok: