Home >Backend Development >PHP Tutorial >PHP automatically updates the site map every 15 minutes (reduces server consumption)

PHP automatically updates the site map every 15 minutes (reduces server consumption)

藏色散人
藏色散人forward
2020-01-15 14:34:282689browse

I am currently working on a short URL, and I wrote the code myself. Exercise yourself. When making an HTML website map, I want to display all the generated short links for easy inclusion. I wrote a sitemap.php, and later found that if there is a large flow of people or too much data in the future, the server burden will be particularly heavy. If there are 100,000 pieces of data, everyone will index these 100,000 pieces of data from the database when they visit. With 100 people visiting every second, the server simply cannot bear it. Then the idea of ​​generating html maps came up.

Due to my poor academic skills, there may be something wrong with my thinking. I hope to have better ideas to criticize and correct!

Principle:

Requires three files:

  • sitemap.html (This file is automatically generated by the system, sitemap. Clone version of php)

  • sitemap.php (main page, determines the style of the page, etc., completely =sitemap.html)

  • timeSitemap. php (for the update program, generate html pages. You can set up monitoring in the monitoring treasure.)

sitemap.php is the page file, sitemap.html is the clone version of sitemap.php, monitoring treasure Set up the timeSitemap.php file for scheduled monitoring to generate a site map every 15 minutes. Of course, the frequency is determined by the monitoring frequency of the monitoring treasure. If the map generation fails, 404 will be returned and the monitoring treasure will alarm. The same applies to sitemap.xml

The code is shared below (use the mysql query and other classes to simply encapsulate the database class for yourself, which will not be shown here):

sitemap.php

<?php
/*
@   sitemap html版地图
*/
// 引入数据库操作类
require_once &#39;c/class.class.php&#39;;
// 引入系统参数
$config = require &#39;c/config.php&#39;;
?>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>网站地图 - <?php echo $config[&#39;web_title&#39;]; ?></title>
<meta name="keywords" content="<?php echo $config[&#39;web_keywords&#39;];?>">
<meta name="description" content="<?php echo $config[&#39;web_description&#39;]; ?>">
<link href="<?php //echo $config[&#39;web_url&#39;];?>/css/bootstrap.min.css" rel=&#39;stylesheet&#39; type=&#39;text/css&#39;>
<!--
<link href="<?php //echo $config[&#39;web_url&#39;];?>/css/style.css" rel=&#39;stylesheet&#39; type=&#39;text/css&#39;>
<link href="<?php //echo $config[&#39;web_url&#39;];?>/css/media.css" rel=&#39;stylesheet&#39; type=&#39;text/css&#39;>
<script src="<?php //echo $config[&#39;web_url&#39;];?>/css/jquery-3.1.1.min.js"></script>
-->
<link type="favicon" rel="shortcut icon" href="<?php //echo $config[&#39;web_url&#39;];?>/favicon.ico" />
<link type="favicon" rel="icon" href="<?php //echo $config[&#39;web_url&#39;];?>/favicon.ico" />
<style>
.table tr {
text-align: center;
}
a {
display: inline-block;
padding: 10px;
}
</style>
</head>
<body>
<!--先提示-->
<?php
// <!-- 取出所有短网址 -->
$cons = new con();
$consSql = "select * from urls order by id desc";
$consQuery = $cons->query($consSql);
// >> 总数量
$consNum = mysql_num_rows($consQuery);
?>
<div class="container">
<!--<table class="table table-striped table-bordered table-hover table-condensed">-->
<hr>
<div style=&#39;text-align:center;height:35px;line-height:35px;font-weight:bold;&#39;>
共<?php echo $consNum; ?>条数据</div><div style=&#39;text-align:center;&#39;>本页面每15分钟更新一次
</div>
</hr>
本站链接:<a href="http://bba.fun">bba.fun短网址</a><a href="http://bba.fun/page/api">api接口</a><a href="http://bba.fun/sitemap.html">网站地图</a>
<br>
生成链接:
<br>
<?php
// >> 显示总数量
echo "";
// >> 开始循环取出
while($rows = mysql_fetch_array($consQuery)){
echo "<a href=&#39;{$rows[&#39;short_url&#39;]}&#39; target=&#39;_blank&#39; rel=&#39;external nofollow&#39;>".$rows[&#39;short_url&#39;]."</a>";
}
?>
<!--</table>-->
<div style=&#39;text-align:center;height:35px;line-height:35px;font-weight:bold;&#39;>2017© <a href="<?php echo $config[&#39;web_url&#39;];?>"><?php echo $config[&#39;web_title&#39;]; ?></a></div><hr>
</div>
</body>
</html>

timeSitemap.php

<?php
/*
@   定时更新网站地图
*/
// 定义获取的url
$url = "http://bba.fun/sitemap.php";
// 定网站地图名字
$name = "sitemap.html";
// 获取源码
$html = file_get_contents($url);
// 写入html
$write = file_put_contents($name,$html);
if($write){
header("HTTP/1.1 200");
}else {
header("HTTP/1.1 404");
}
?>

The above is the detailed content of PHP automatically updates the site map every 15 minutes (reduces server consumption). For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete