使用PHP调取MySql数据生成Sitemap网站地图

之前一直想自己做Sitemap网站地图但是不会,查了很多攻略都不能用,直到最近终于找到一个可用的(技术问题还是得靠Google啊),翻译并记录如下。

新建一个文件,例如命名为sitemap.php,按照自己的需求修改并输入以下代码,然后保存即可。直接打开https://www.yourdomian.com/sitemap.php即可使用,虽然不是xml格式,但是亲测Google、百度可以支持。

<?php 
//sitemap.php
$connect = mysqli_connect("localhost", "root", "!AAA", "!BBB");

$query = "SELECT ccontent FROM !CCC order by !DDD desc limit !EEE";

$result = mysqli_query($connect, $query);

$base_url = "http://www.!FFF.com/";

header("Content-Type: application/xml; charset=utf-8");

echo '<?xml version="1.0" encoding="UTF-8"?>'.PHP_EOL; 

echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">' . PHP_EOL;

while($row = mysqli_fetch_array($result))
{
 echo '<url>' . PHP_EOL;
 echo '<loc>'.$base_url. $row["ccontent"] .'</loc>' . PHP_EOL;
 echo '<changefreq>daily</changefreq>' . PHP_EOL;
 echo '</url>' . PHP_EOL;
}

echo '</urlset>' . PHP_EOL;

?>

!AAA,改为你的数据库密码

!BBB,改为要使用的数据表。

!CCC,改为读取数据的数据列。

!DDD,改为排序方式,此处是倒序排列,如果需要正序就删除后面的desc。

!EEE,改为需要调用的数据条数。

!FFF,改为URL的前缀,例如前缀是https://www.zyzhang.com/,数据表里的数据是ABC,则Sitemap里面的链接就是「https://www.zyzhang.com/abc」

发表评论