<?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. 图解Java数据结构之环形链表

    本篇文章介绍数据结构中的环形链表. 介绍 环形链表,类似于单链表,也是一种链式存储结构,环形链表由单链表演化过来.单链表的最后一个结点的链域指向NULL,而环形链表的建立,不要专门的头结点,让最后一个 ...

  2. Linux目录管理

    Linux文件目录管理 1:目录管理 1)切换目录 # cd  [ 目录名称] 2)退到上一目录 # cd .. 2:创建目录 mkdir  [文件名称] mkdir -p  [文件名称] 递归创建目 ...

  3. flask flask_session,WTForms

    一.Flask_session 本质上,就是是cookie 下的session存储在redis中,方便快速取得session from flask import Flask,session from ...

  4. LOJ 3184: 「CEOI2018」斐波那契表示法

    题目传送门:LOJ #3184. 题意简述: 题目说得很清楚了. 题解: 首先需要了解「斐波那契数系」为何物. 按照题目中定义的斐波那契数列 \(F_n\),可以证明,每个非负整数 \(n\) 都能够 ...

  5. v8

    V8 - 开源,由Google开发,用C ++编写 Rhin- 由Mozilla基金会开源,完全用Java开发 SpiderMonkey 第一个JavaScript引擎,Netscape Naviga ...

  6. TiDB 学习资料

    学习资料 网址 官网 https://pingcap.com/docs-cn/stable/

  7. Eclipse IDE for java EE Developers下载和安装

    1.登录 http://www.eclipse.org/home/index.php ,下载Eclipse IDE for java EE Developers 2.解压缩压缩包到任意路径(推荐:G: ...

  8. webapi基于单请求封装多请求的设计【转】

    怎么说,单请求封装多请求,这句话确实有点绕了,但还是要看清楚,想明白这到底是怎么一回事,单请求即一次请求(get,post,put,delete),封闭多请求,即在客户端发送的一个请求中可能包含多个子 ...

  9. 学习-spring data jpa

    spring data jpa对照表 Keyword Sample JPQL snippet And findByLastnameAndFirstname - where x.lastname = ? ...

  10. 学习-angular 7入门

    1.安装脚手架:npm install -g @angular/cli 安装之后,输入命令 ng v: Package Version -------------------------------- ...