php生成sitemap
时间: 2023-10-02 13:11:41 浏览: 48
生成Sitemap有很多方法,下面介绍一种基于PHP的方法:
1. 首先,创建一个sitemap.xml文件,其中包含您要包含在站点地图中的所有URL。例如:
```
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/page1</loc>
<lastmod>2021-10-01</lastmod>
</url>
<url>
<loc>https://example.com/page2</loc>
<lastmod>2021-10-02</lastmod>
</url>
...
</urlset>
```
2. 创建一个PHP脚本,该脚本将读取您的站点地图文件并将其发送到搜索引擎,以便它们了解您的站点的结构。以下是一个示例脚本:
```
<?php
// 设置站点地图文件的URL
$sitemapUrl = 'https://example.com/sitemap.xml';
// 从站点地图文件中读取URL
$xml = simplexml_load_file($sitemapUrl);
$urls = $xml->xpath('//url/loc');
// 循环遍历每个URL并发送到搜索引擎
foreach($urls as $url) {
pingSearchEngines((string)$url);
}
// 发送URL到搜索引擎
function pingSearchEngines($url) {
$searchEngines = array(
'http://www.google.com/ping?sitemap=',
'http://www.bing.com/ping?sitemap=',
'http://www.ask.com/ping?sitemap=',
'http://www.submitexpress.com/ping?sitemap=',
);
foreach($searchEngines as $engine) {
$pingUrl = $engine . urlencode($url);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $pingUrl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
}
}
?>
```
3. 将该脚本保存为sitemap-ping.php,并将其放置在您的网站的根目录中。
4. 设置一个cron任务,每天运行一次sitemap-ping.php脚本,以确保您的站点地图始终是最新的。您可以使用以下命令将任务添加到cron:
```
0 0 * * * /usr/bin/php /path/to/sitemap-ping.php >/dev/null 2>&1
```
这将在每天午夜运行sitemap-ping.php脚本。