Maison  >  Article  >  développement back-end  >  PHP met automatiquement à jour le plan du site toutes les 15 minutes (réduit la consommation du serveur)

PHP met automatiquement à jour le plan du site toutes les 15 minutes (réduit la consommation du serveur)

藏色散人
藏色散人avant
2020-01-15 14:34:282659parcourir

Je travaille actuellement sur une URL courte et j'ai écrit le code moi-même. Faites de l'exercice. Lors de la création d'une carte de site Web HTML, je souhaite afficher tous les liens courts générés pour une inclusion facile. J'ai écrit un sitemap.php et j'ai découvert plus tard que s'il y avait un flux important de personnes ou trop de données à l'avenir, la charge du serveur serait particulièrement lourde. S'il y avait 100 000 éléments de données, tout le monde indexerait ces 100 000 éléments. données de la base de données lors de leur visite. Avec 100 personnes visitant chaque seconde, le serveur ne peut tout simplement pas le supporter. Puis l'idée de générer des cartes HTML est venue.

En raison de mes faibles compétences académiques, il se peut qu'il y ait quelque chose qui ne va pas dans ma réflexion. J'espère avoir de meilleures idées à critiquer et à corriger !

Principe :

nécessite trois fichiers :

  • sitemap.html (Ce fichier est généré automatiquement par le système, plan du site . Version clone de php)

  • sitemap.php (page principale, détermine le style de la page, etc., complètement =sitemap.html)

  • timeSitemap.php (pour mettre à jour le programme et générer des pages html. Vous pouvez configurer la surveillance dans le trésor de surveillance.)

sitemap.php est le fichier de page, sitemap.html est la version clone de sitemap.php, surveillance du trésor Configurez le fichier timeSitemap.php pour une surveillance planifiée pour générer un plan du site toutes les 15 minutes. Bien entendu, la fréquence est déterminée par la fréquence de surveillance du trésor de surveillance si la génération de la carte. échoue, 404 sera renvoyé et le trésor de surveillance déclenchera une alarme. La même chose s'applique à sitemap.xml

Le code est partagé ci-dessous (utilisez la requête mysql et d'autres classes pour encapsuler simplement la classe de base de données pour vous-même, qui ne sera pas affichée ici) :

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");
}
?>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer