Heim > Artikel > Backend-Entwicklung > PHP aktualisiert die Sitemap automatisch alle 15 Minuten (reduziert den Serververbrauch)
Ich arbeite derzeit an einer Kurz-URL und habe den Code selbst geschrieben. Trainiere dich. Beim Erstellen einer HTML-Website-Karte möchte ich alle generierten Kurzlinks anzeigen, damit sie leicht eingefügt werden können. Ich habe eine sitemap.php geschrieben und später festgestellt, dass die Serverbelastung besonders hoch sein wird, wenn es in Zukunft einen großen Personenstrom oder zu viele Daten gibt. Wenn es 100.000 Daten gibt, wird jeder diese 100.000 Daten indizieren Bei 100 Besuchern pro Sekunde kann der Server dies einfach nicht ertragen. Dann kam die Idee auf, HTML-Karten zu generieren.
Aufgrund meiner schlechten akademischen Fähigkeiten stimmt möglicherweise etwas mit meiner Denkweise nicht. Ich hoffe, dass ich bessere Ideen zum Kritisieren und Korrigieren habe!
Prinzip:
erfordert drei Dateien:
sitemap.html (Diese Datei wird automatisch vom System generiert, Sitemap . Klonversion von PHP)
sitemap.php (Hauptseite, bestimmt den Stil der Seite usw., vollständig =sitemap.html)
timeSitemap.php (um das Programm zu aktualisieren und HTML-Seiten zu generieren. Sie können die Überwachung im Überwachungsschatz einrichten.)
sitemap.php ist die Seitendatei, sitemap.html ist die Klonversion von sitemap.php, Überwachungsschatz. Richten Sie die Datei timeSitemap.php für die geplante Überwachung ein, um alle 15 Minuten eine Sitemap zu generieren. Die Häufigkeit wird natürlich durch die Überwachungshäufigkeit des Überwachungsschatzes bestimmt Schlägt dies fehl, wird 404 zurückgegeben und der Überwachungsschatz löst einen Alarm aus. Das Gleiche gilt für sitemap.xml
Der Code wird unten geteilt (verwenden Sie die MySQL-Abfrage und andere Klassen, um einfach die Datenbankklasse für sich selbst zu kapseln, die hier nicht angezeigt wird):
sitemap.php
<?php /* @ sitemap html版地图 */ // 引入数据库操作类 require_once 'c/class.class.php'; // 引入系统参数 $config = require 'c/config.php'; ?> <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['web_title']; ?></title> <meta name="keywords" content="<?php echo $config['web_keywords'];?>"> <meta name="description" content="<?php echo $config['web_description']; ?>"> <link href="<?php //echo $config['web_url'];?>/css/bootstrap.min.css" rel='stylesheet' type='text/css'> <!-- <link href="<?php //echo $config['web_url'];?>/css/style.css" rel='stylesheet' type='text/css'> <link href="<?php //echo $config['web_url'];?>/css/media.css" rel='stylesheet' type='text/css'> <script src="<?php //echo $config['web_url'];?>/css/jquery-3.1.1.min.js"></script> --> <link type="favicon" rel="shortcut icon" href="<?php //echo $config['web_url'];?>/favicon.ico" /> <link type="favicon" rel="icon" href="<?php //echo $config['web_url'];?>/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='text-align:center;height:35px;line-height:35px;font-weight:bold;'> 共<?php echo $consNum; ?>条数据</div><div style='text-align:center;'>本页面每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='{$rows['short_url']}' target='_blank' rel='external nofollow'>".$rows['short_url']."</a>"; } ?> <!--</table>--> <div style='text-align:center;height:35px;line-height:35px;font-weight:bold;'>2017© <a href="<?php echo $config['web_url'];?>"><?php echo $config['web_title']; ?></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"); } ?>
Das obige ist der detaillierte Inhalt vonPHP aktualisiert die Sitemap automatisch alle 15 Minuten (reduziert den Serververbrauch). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!