Mise à jour sitemap : ping Google ?

WRInaute discret
Bonjour,

Fonction avec les Sockets :

Code:
<?php
function pingGoogleSitemaps( $url_xml ){
   $status = 0;
   $google = 'www.google.com';
   if( $fp=@fsockopen($google, 80) )
   {
      $req =  'GET /webmasters/sitemaps/ping?sitemap=' .
              urlencode( $url_xml ) . " HTTP/1.1\r\n" .
              "Host: $google\r\n" .
              "User-Agent: Mozilla/5.0 (compatible; " .
              PHP_OS . ") PHP/" . PHP_VERSION . "\r\n" .
              "Connection: Close\r\n\r\n";
      fwrite( $fp, $req );
      while( !feof($fp) )
      {
         if( @preg_match('~^HTTP/\d\.\d (\d+)~i', fgets($fp, 128), $m) )
         {
            $status = intval( $m[1] );
            break;
         }
      }
      fclose( $fp );
   }
   return( $status );
}
?>

Sinon tu dois pouvoir le faire avec Curl... et je pense que ça dois donner une chose de ce genre là (code écrit a l'arrache ;) ):

Code:
<?php
function pingGoogleSitemaps( $url_xml ){
		$url_xml = urlencode($url_xml );
		$headers = array('Expect:', 'X-Curl-Client: ', 'X-Curl-Client-Version: ', 'X-Curl-Client-URL: ');

		$url = 'https://www.google.com/webmasters/sitemaps/ping';
		$curl_handle = curl_init();
		curl_setopt($curl_handle, CURLOPT_URL, "$url");
		curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
		curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($curl_handle, CURLOPT_POST, 1);
		curl_setopt($curl_handle, CURLOPT_POSTFIELDS, "sitemap=$url_xml ");
		curl_setopt($curl_handle, CURLOPT_HTTPHEADER, $headers);
		$buffer = curl_exec($curl_handle);
		$info = curl_getinfo($curl_handle);
		curl_close($curl_handle);

	if( intval($info['http_code']) == 200 )
	 return 1;
	else
	 return 'Erreur HTTP ' . $info['http_code'];
}
?>
 
WRInaute discret
Pour la première tu peux par exemple :
Code:
<?php
	if( 200 === ($status=pingGoogleSitemaps('http://www.example.com/sitemap.xml')) )
   echo "Ping to Google Sitemaps successful. -- Status code: $status.\n";
	else
   echo "Cannot ping/connect to Google Sitemaps. -- Status code: $status.\n";
?>

Pour la seconde :
Code:
<?php
   $RepPing = pingGoogleSitemaps('http://www.example.com/sitemap.xml');
	if( $RepPing == 1 )
   echo "Ping to Google Sitemaps successful.\n";
	else
   echo "Cannot ping/connect to Google Sitemaps. -- $RepPing.\n";
?>
 
WRInaute discret
Sand doute avec quelque chose du genre :
Code:
<?php
function GagneEuromillion($Mise, $Nom) {
  if ($Nom == "IllusionPerdu") {
    return( "BRAVO : Vous avez gagnez la cagnotte !!!" );
  } else {
    return( "Dommage Vous avez perdu ! Faite passer à ".round(1000000000 / $Mise)." personnes !" );
  }
}

echo 'Grand tirrage de l\'EuroMillion '. GagneEuromillion($LaMise, $NomDuMembre);
?>
 
Discussions similaires
Haut