<?php
/*****连接数据库 start*******/
$dbhost = "localhost";
$username = "root";
$userpass = "root";
$dbdatabase = "eoews";
$db_con = mysqli_connect($dbhost,$username,$userpass) or die("Unable to connect to the MySQL!");
//选择一个需要操作的数据库
mysqli_select_db($db_con,$dbdatabase);
/***********连接数据库****end******/ $page_size = 10000; //每页条数
//1w个地址生成一个子地图,判断需要生成几个?
$countQuery = mysqli_query($db_con,"select count(id) from apps where status = 1 ");
$count = implode(',' , mysqli_fetch_row($countQuery));
$page_count = ceil($count/$page_size); //分几个文件
baidu_create_index($page_count);
baidu_create_child($db_con,$page_count,$page_size); //百度生成主sitemap
function baidu_create_index($page_count) { $content = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
$content .= "<sitemapindex>";
for($i=1;$i<=$page_count;$i++) { $content .="<sitemap>";
$content .= "<loc> http://test.demo.cn/sitemap/sitemap$i.xml</loc>";
$content .= "<lastmod>".date('Y-m-d')."</lastmod>";
$content .= "</sitemap>";
}
$content .= "</sitemapindex>";
file_put_contents("sitemap.xml",$content);
} //百度生成子sitemap
function baidu_create_child($db_con,$page_count,$page_size) {
for($i=0;$i<$page_count;$i++) { $count = $i * $page_size; $result = mysqli_query($db_con,"SELECT id,updated_time FROM apps ORDER BY updated_time desc limit $count,$page_size");
    //提取数据
if($result){
$str = '<?xml version="1.0" encoding="utf-8"?>';
$str .= '<urlset>';
while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) {
$str .= '<url>';
$str .= "<loc>http://test.eoews.cn/soft/{$row["id"]}.html</loc>";
$str .= "<lastmod>" . date('Y-m-d',strtotime($row["updated_time"])) . "</lastmod>";
$str .= "<changefreq>daily</changefreq>";
$str .= "<priority>0.9</priority>";
$str .= '</url>';
}
$str .= '</urlset>';
file_put_contents('sitemap/sitemap'.($i+1).".xml" ,$str);
}else{
die("fetch data failed!");
} mysqli_free_result($result);
}
}

用的是原生写的。没有用到框架 要是用框架的话 应该会方便很多,至少在Mysql 上不会这么复杂

sitemap 文件的生成 sitemap文件和sitemapindex 索引文件的生成的更多相关文章

  1. Oracle非重要文件恢复,redo、暂时文件、索引文件、password文件

    增量备份的应用在recovery阶段.不再restore阶段 了解数据库设置表: SQL>desc database_properties  Name                       ...

  2. 如何通过倾斜摄影数据手动配置s3c索引文件?

    如何通过倾斜摄影数据手动配置s3c索引文件? 大家知道,倾斜摄影数据最常见的是OSGB格式,并且是由一个一个的Tile分级文件夹构成的Data文件夹.结构一般如下图所示: 那么,如何才能把模型的各个瓦 ...

  3. lucene: 索引建立完后无法查看索引文件中的数据

    索引建立时      1.对原有索引文件进行建立,是可以访问索引文件中的数据的      2.建立新索引文件,必须等建立完毕后,才可以访问,新建立的文件如果没有建立完是不可以被访问的     如果想建 ...

  4. sitemap.xml 静态和动态生成页面 shopnc二次开发 动态生成sitemap.xml

    Sitemap 可方便网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页.最简单的 Sitemap 形式,就是XML 文件,在其中列出网站中的网址以及关于每个网址的其他元数据(上次更新的时间.更改的 ...

  5. Java生成sitemap网站地图

    访问我的博客 sitemap 是什么?对应没有接触过网站 SEO 的同学可能不知道,这里引用一下百度站长的一段解释. Sitemap(即站点地图)就是您网站上各网页的列表.创建并提交Sitemap有助 ...

  6. .net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml)

    .net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml) 首先设置 Startup.cs 文件 配置 ConfigureServices services .Add ...

  7. Python脚本生成sitemap

    项目须要用脚本生成sitemap,中间学习了一下sitemap的格式和lxml库的使用方法.把结果记录一下,方便以后须要直接拿来用. 来自Python脚本生成sitemap 安装lxml 首先须要pi ...

  8. NHibernate生成实体类、xml映射文件

    最近工作电脑装完win10后,之前使用的codeSmith安装不了,索性自己写一个. 界面比较简单,如下图: 第一行为Oracle数据库的连接字符串.连接成功后,填充表到第4行的下拉列表中. 第二行为 ...

  9. 使用mybatis-generator自动生成model、dao、mapping文件

    参考文献:http://www.cnblogs.com/smileberry/p/4145872.html 一.所需库 1.mybatis-generator库 2.连接DB的驱动(此以mysql为例 ...

随机推荐

  1. vue学习指南:第十一篇(详细) - Vue的 路由 第一篇 ( router )

    一.路由的配置 路由  vue-router 1. 什么是路由? 路由相当于一个配置对象 路由:就是我们通过不同的url访问不同的内容,通过angular.js 可以实现多视图的单页,现在流行的单页面 ...

  2. 【Android】天气应用

    模仿华为的"天气"应用写的一个小Demo.部分功能.动画效果没有实现,也没有过多考虑性能.Bug等其它方面的因素.写这个Demo的初衷是想熟悉下目前网上常用的一些框架. Demo采 ...

  3. Scrum 冲刺第二篇

    我们是这次稳了队,队员分别是温治乾.莫少政.黄思扬.余泽端.江海灵 一.会议 1.1  26号站立式会议照片: 1.2  昨天已完成的事情 团队成员 任务内容 黄思扬 Web 端首页.内容管理页开发. ...

  4. 05showLoading配置和 <text>标签的坑 如何发送请求 分享功能和懒加载

    14-电影-列表-需求分析 小程序里面取数据 没有冒号这么一说 加载动画 在对应页面 js文件中 showLoading你可以去看他的配置     // wx.showLoading() 应用在让用户 ...

  5. 搭建稳固的MySQL运维体系

    MySQL 监控要点 MySQL 监控要点,主要涉及服务器和 MySQL 两个方向的监控告警. 在这两个监控告警方向需要重点关注监控策略.监控趋势图及报警方式. 监控策略指的是每个监控项的告警阈值,例 ...

  6. Docker常用命令(五)

    一.帮助命令 docker version docker info # 重要 docker --help 可以使用docker COMMAND --help 查看某个命令具体如何使用. 二.镜像命令 ...

  7. NOIP 2004 合并果子

    洛谷P1090 https://www.luogu.org/problemnew/show/P1090 JDOJ 1270 题目描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分 ...

  8. web框架--tornado框架之模板引擎

    使用Tornado实现一个简陋的任务表功能demo来讲解tornado框架模板引擎 一.demo目录结构 二.具体文件内容 2.1.commons.css .body{ margin: 0; back ...

  9. 6.Vue的Axios异步通信

    1.什么是Axios Axios 是一个开源的可以用在浏览器端和 NodeJS 的异步通信框架,主要作用就是实现 AJAX 异步通信,其功能特点如下: 从浏览器中创建 XMLHttpRequests ...

  10. Mysql查询数据库状态及信息

    使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小.字符集.用户等等.下面总结了一些查看数据库相关信息的命令 1:查看显示所有数据库 mysql> show databases; ...