>  기사  >  백엔드 개발  >  PHP는 15분마다 자동으로 사이트 맵을 업데이트합니다(서버 소비 감소).

PHP는 15분마다 자동으로 사이트 맵을 업데이트합니다(서버 소비 감소).

藏色散人
藏色散人앞으로
2020-01-15 14:34:282557검색

현재 단축 URL 작업 중이고, 코드도 직접 작성했습니다. 스스로 운동하십시오. HTML 웹사이트 맵을 만들 때 생성된 모든 짧은 링크를 쉽게 포함할 수 있도록 표시하고 싶습니다. sitemap.php를 작성했는데, 나중에 사람이 많이 붐비거나 데이터가 너무 많아지면 서버 부담이 특히 심해질 것이라는 사실을 알게 되었습니다. 매초 100명이 방문하면 서버는 이를 감당할 수 없습니다. 그러다가 HTML 맵을 생성한다는 아이디어가 떠올랐습니다.

저의 부족한 학업 실력으로 인해 제 생각에 문제가 있을 수도 있습니다. 비판하고 바로잡을 수 있는 더 좋은 아이디어가 있기를 바랍니다!

원칙:

에는 3개의 파일이 필요합니다:

  • sitemap.html(이 파일은 시스템에 의해 자동으로 생성되며, sitemap.php의 복제 버전입니다.)

  • sitemap.php(메인 페이지, 페이지 스타일 잠깐, 완전히 = sitemap.html)

  • timeSitemap.php (업데이트 프로그램을 위해서는 html 페이지를 생성하세요. 모니터링은 모니터링 보물에서 설정하실 수 있습니다.)

sitemap.php는 page 파일, sitemap.html은 sitemap.php입니다. 복제된 버전에서는 Monitoring Bao가 timeSitemap.php 파일을 정기적으로 모니터링하도록 설정하여 15분마다 웹사이트 맵을 생성합니다. 물론 빈도는 Monitoring Bao의 모니터링 빈도에 따라 결정됩니다. 지도 생성이 실패하면 404가 반환되고 Monitoring Bao가 경보를 울립니다. sitemap.xml에도 동일하게 적용됩니다

코드는 아래에 공유됩니다(여기에는 표시되지 않지만 데이터베이스 클래스를 간단히 캡슐화하는 데 사용되는 mysql 쿼리 및 기타 클래스를 사용하세요):

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

위 내용은 PHP는 15분마다 자동으로 사이트 맵을 업데이트합니다(서버 소비 감소).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제