Chat with us, powered by LiveChat

Google Sitemap Generator with PHP

This is the PHP code that runs the Blogger Sitemap Generator. The generated XML sitemaps are exposed to Google via the robots.txt file – see Add Google Sitemap to Blogger Blogs.

// Make sure that input contains http
 if(substr($blog,0,7) != "http://")
  $blog = "http://" . $blog;
  
// Make sure that blog URL ends with a slash
 if(substr($blog, -1) != "/")
  $blog = $blog . "/";

// Determine the count of blog posts
 $url = $blog . "atom.xml?redirect=false&start-index=1&max-results=1";

 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

 $xml = curl_exec($ch) ;
 curl_close($ch);

// Parse the XML ouput to determine the count
 $x = strpos($xml, "<openSearch:totalResults>") + strlen("<openSearch:totalResults>");
 $y = strpos($xml, "</openSearch:totalResults>");
 $c = substr($xml, $x, $y-$x);

// Generate the XML sitemap for robots.txt
  if ($c >=1) {
    echo "# Blogger Sitemap generated on " . date("Y.m.d") . "<br />";
    echo "User-agent: *<br/>Disallow: /search<br/>Allow: /<br />";
    for($x=1; $x<=$c; $x=$x+500) {
        echo "<br/>Sitemap: " . $blog . "atom.xml?redirect=false&start-index=" . $x . "&max-results=500";
     }
  }