最近在弄一个短网址,自己写的代码。锻炼一下自己。在做html网站地图这块,想着把所有生成的短连接都展示出来,方便收录。就写了一个sitemap.php,后来发现,如果以后人流量大或者数据过多的话,服务器负担就会特别重,假如有10w条数据,每个人访问的时候都会从数据库索引这10w条数据,一秒钟有100个人访问,服务器根本负担不过来。然后就萌生了生成html地图这个想法。

由于学艺不精,可能思路上有些不对的。希望有更好思路能够批评指正!

原理:

需要三个文件:

  • sitemap.html (这个文件为系统自动生成,sitemap.php的克隆版)

  • sitemap.php (主要页面,决定页面的样式等,完全=sitemap.html)

  • timeSitemap.php (为更新程序,生成html页面。可在监控宝设置监控。)

sitemap.php为页面文件,sitemap.html为sitemap.php的克隆版,监控宝设置定时监控timeSitemap.php文件,实现每15分钟生成网站地图,当然,频率是按照监控宝的监控频率来决定,如果地图生成失败,会返回404,监控宝会报警。sitemap.xml同理

下面共享代码(用使用的mysql查询等类为自己简单封装的数据库类,这里就不展示了):

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

更多相关文章

  1. 怎么将网站的php版本信息隐藏起来
  2. PHP+jQuery实现中国地图热点数据统计展示效果
  3. 写了100多篇原创文章,我常用的在线工具网站推荐给大家!
  4. 《大型网站系统与Java中间件》读书笔记 (二)
  5. 《大型网站系统与Java中间件》读书笔记(上)
  6. 4: zabbix5.0自动发现网站域名并监控访问状态和请求时间
  7. 升级博客网站遇到的坑
  8. 由12306.cn谈谈网站性能技术
  9. 博客网站显示框相对浏览器固定位置显示

随机推荐

  1. Android AutoCompleteTextView示例教程
  2. android jni系列教程
  3. Android(安卓)6.0 Launcher3隐藏小部件与
  4. android 计算器(2)
  5. android 数据库同步
  6. Android Studio怎样清空ArrayList
  7. 设置 listview 滚动条样式
  8. Android 4+ WIFI 直连
  9. adb - api -android
  10. Android中的Adapter