1. <?php
  2. /*****连接数据库 start*******/
  3. $dbhost = "localhost";
  4. $username = "root";
  5. $userpass = "root";
  6. $dbdatabase = "eoews";
  7. $db_con = mysqli_connect($dbhost,$username,$userpass) or die("Unable to connect to the MySQL!");
  8. //选择一个需要操作的数据库
  9. mysqli_select_db($db_con,$dbdatabase);
  10. /***********连接数据库****end******/
  11.  
  12. $page_size = 10000; //每页条数
  13. //1w个地址生成一个子地图,判断需要生成几个?
  14. $countQuery = mysqli_query($db_con,"select count(id) from apps where status = 1 ");
  15. $count = implode(',' , mysqli_fetch_row($countQuery));
  16. $page_count = ceil($count/$page_size); //分几个文件
  17. baidu_create_index($page_count);
  18. baidu_create_child($db_con,$page_count,$page_size);
  19.  
  20. //百度生成主sitemap
  21. function baidu_create_index($page_count) {
  22.  
  23. $content = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
  24. $content .= "<sitemapindex>";
  25. for($i=1;$i<=$page_count;$i++) {
  26.  
  27. $content .="<sitemap>";
  28. $content .= "<loc> http://test.demo.cn/sitemap/sitemap$i.xml</loc>";
  29. $content .= "<lastmod>".date('Y-m-d')."</lastmod>";
  30. $content .= "</sitemap>";
  31. }
  32. $content .= "</sitemapindex>";
  33. file_put_contents("sitemap.xml",$content);
  34. }
  35.  
  36. //百度生成子sitemap
  37. function baidu_create_child($db_con,$page_count,$page_size) {
  38. for($i=0;$i<$page_count;$i++) {
  39.  
  40. $count = $i * $page_size;
  41.  
  42. $result = mysqli_query($db_con,"SELECT id,updated_time FROM apps ORDER BY updated_time desc limit $count,$page_size");
  43.     //提取数据
  44. if($result){
  45. $str = '<?xml version="1.0" encoding="utf-8"?>';
  46. $str .= '<urlset>';
  47. while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) {
  48. $str .= '<url>';
  49. $str .= "<loc>http://test.eoews.cn/soft/{$row["id"]}.html</loc>";
  50. $str .= "<lastmod>" . date('Y-m-d',strtotime($row["updated_time"])) . "</lastmod>";
  51. $str .= "<changefreq>daily</changefreq>";
  52. $str .= "<priority>0.9</priority>";
  53. $str .= '</url>';
  54. }
  55. $str .= '</urlset>';
  56. file_put_contents('sitemap/sitemap'.($i+1).".xml" ,$str);
  57. }else{
  58. die("fetch data failed!");
  59. }
  60.  
  61. mysqli_free_result($result);
  62. }
  63. }

用的是原生写的。没有用到框架 要是用框架的话 应该会方便很多,至少在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. PHP json中文

    json_encode 和 json_decode 只支持utf-8编码的字符串,GBK的字符串要用json就得转换成utf-8字符串 看效果 <?php header("Conten ...

  2. jmeter5.1分布式压测

    在使用jmeter压测过程中,可能会度遇到内存溢出的错误,这是为什么呢?因为jmeter是java写的应用,java应用jvm堆内存heap受负载机硬件限制,虽然我们可以调整堆内存大小,但是单机无法支 ...

  3. 为什么重复的GET请求变慢了?

    最近在研究慢请求监控的问题,写了一个简单的测试代码:在网页端(index.html)通过fetch函数向服务端获取数据,然后打印请求耗时. function requestData() { let s ...

  4. Redis 使用过程中遇到的具体问题

    1.缓存雪崩和缓存穿透问题 1.1缓存雪崩 简介:缓存同一时间大面积的失效,所以,后面的请求都会落到数据库上,造成数据库短时间内承受大量请求而崩掉. 解决办法:  事前:尽量保证整个 redis 集 ...

  5. 以太网PHY寄存器分析【转】

    转自:https://blog.csdn.net/Firefly_cjd/article/details/79825869 以太网PHY寄存器分析    1 1.以太网PHY标准寄存器分析    2 ...

  6. 2-1Numpy概述

    In [1]: import numpy as np In [2]: array=[1,2,3,4,5] array+1#没定义成numpy.ndarray类型是不能直接操作的   --------- ...

  7. sqlalchemy(2)

    orm介绍 orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为 ...

  8. DNS分离解析

    实验环境: 一台内网(client)1块网卡:一台网关(dns)2块网卡:一台外网1块网卡 DNS服务器开启路由转发 [root@localhost ~]# vi /etc/sysctl.conf n ...

  9. python27期day17:re、logging日志模块、作业。

    1.re: 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则.(在Python中)它内嵌在Python中,并通过 re 模 ...

  10. maven介绍(一)

    一.什么是maven Maven 翻译过来就是专家,其官网为: http://maven.apache.org/ Maven使用POM (Project Object Model)项目对象模型,就是通 ...