小赖子的英国生活和资讯

怎样自动提交站点地图 (PHP 脚本)?

阅读 桌面完整版

如果网站中文章URL数目比较多几千几万的. 这时候站点地图 Sitemaps 就对搜索引擎很有帮助了. 平时你可以通过登陆 Google Webmaster 或者 Bing Master 之类的站点工具手动提交站点地图 (告诉搜索引擎网站有更新) 但是如果网站很多 站点地图很多的话 一个一个手动提交也是很累的.

sitemap 怎样自动提交站点地图 (PHP 脚本)? I.T. LINUX PHP是最好的语言 互联网 程序设计 网站信息与统计

sitemap

以下通过 PHP 自动提交站点地图 并且可以很容易的通过 crontab 来设置成每天自动提交, 省去烦恼.

首先需要把站点地图的URL记在数组里:

1
2
3
4
5
6
7
8
9
10
11
// 站点地图 URL, 记得替换成你自己的
$sitemaps = array(
  "https://helloacm.com/sitemap.xml",
  "https://codingforspeed.com/sitemap.xml",
  "https://codingforspeed.com/forum/sitemap.php",
  "https://uploadbeta.com/sitemap.xml",
  "https://rot47.net/sitemap.xml",
  "https://justyy.com/sitemap.xml",
  "https://steakovercooked.com/sitemap.xml",
  "https://steakovercooked.com/wedding/sitemap.xml"
);
// 站点地图 URL, 记得替换成你自己的
$sitemaps = array(
  "https://helloacm.com/sitemap.xml",
  "https://codingforspeed.com/sitemap.xml",
  "https://codingforspeed.com/forum/sitemap.php",
  "https://uploadbeta.com/sitemap.xml",
  "https://rot47.net/sitemap.xml",
  "https://justyy.com/sitemap.xml",
  "https://steakovercooked.com/sitemap.xml",
  "https://steakovercooked.com/wedding/sitemap.xml"
);

然后只需要定义两个函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// cUrl 库用于访问 提交的URL
function Submit($url){
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_exec($ch);
  $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  curl_close($ch);
  return $httpCode;
}
 
function SubmitSiteMap($url) {
  $returnCode = Submit($url);
  if ($returnCode != 200) {
    echo "错误 $returnCode: $url <br />";
  } else {
    echo "成功提交 $returnCode: $url <br />";
  }
}
// cUrl 库用于访问 提交的URL
function Submit($url){
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_exec($ch);
  $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  curl_close($ch);
  return $httpCode;
}

function SubmitSiteMap($url) {
  $returnCode = Submit($url);
  if ($returnCode != 200) {
    echo "错误 $returnCode: $url <br />";
  } else {
    echo "成功提交 $returnCode: $url <br />";
  }
}

最后只要需要把每个URL依次提交到搜索引擎里即可.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
foreach ($sitemaps as $sitemapUrl) {
  $sitemapUrl = htmlentities($sitemapUrl);
 
  //Google  
  $url = "http://www.google.com/webmasters/sitemaps/ping?sitemap=".$sitemapUrl;
  SubmitSiteMap($url);
  
  //Bing / MSN
  $url = "http://www.bing.com/webmaster/ping.aspx?siteMap=".$sitemapUrl;
  SubmitSiteMap($url);
  
  // Live
  $url = "http://webmaster.live.com/ping.aspx?siteMap=".$sitemapUrl;
  SubmitSiteMap($url);
  
  // moreover
  $url = "http://api.moreover.com/ping?sitemap=".$sitemapUrl;
  SubmitSiteMap($url);
}
foreach ($sitemaps as $sitemapUrl) {
  $sitemapUrl = htmlentities($sitemapUrl);

  //Google  
  $url = "http://www.google.com/webmasters/sitemaps/ping?sitemap=".$sitemapUrl;
  SubmitSiteMap($url);
  
  //Bing / MSN
  $url = "http://www.bing.com/webmaster/ping.aspx?siteMap=".$sitemapUrl;
  SubmitSiteMap($url);
  
  // Live
  $url = "http://webmaster.live.com/ping.aspx?siteMap=".$sitemapUrl;
  SubmitSiteMap($url);
  
  // moreover
  $url = "http://api.moreover.com/ping?sitemap=".$sitemapUrl;
  SubmitSiteMap($url);
}

最好在脚本开头去掉脚本执行时间限制.

1
set_time_limit(999999);
set_time_limit(999999);

如果你对提交的结果并不在意 其实可以把 Submit 替换成更为简单的 file_get_contents 并不需要复杂的 cURL 库.

1
2
3
function Submit($url) {
  file_get_contents($url);
}
function Submit($url) {
  file_get_contents($url);
}

最后 可以加入 crontab -e 的列表中 每天自动提交. 懒人推动科技进步!

1
@daily php submit_sitemap.php
@daily php submit_sitemap.php

源代码可以在 github中得到 submit_sitemaps.php, 记得把 sitemaps 改成你自己的.

英文: How to Submit Sitemaps using PHP automatically?

强烈推荐

微信公众号: 小赖子的英国生活和资讯 JustYYUK

阅读 桌面完整版
Exit mobile version