sitemap 文件的生成 sitemap文件和sitemapindex 索引文件的生成
<?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 索引文件的生成的更多相关文章
- Oracle非重要文件恢复,redo、暂时文件、索引文件、password文件
增量备份的应用在recovery阶段.不再restore阶段 了解数据库设置表: SQL>desc database_properties Name ...
- 如何通过倾斜摄影数据手动配置s3c索引文件?
如何通过倾斜摄影数据手动配置s3c索引文件? 大家知道,倾斜摄影数据最常见的是OSGB格式,并且是由一个一个的Tile分级文件夹构成的Data文件夹.结构一般如下图所示: 那么,如何才能把模型的各个瓦 ...
- lucene: 索引建立完后无法查看索引文件中的数据
索引建立时 1.对原有索引文件进行建立,是可以访问索引文件中的数据的 2.建立新索引文件,必须等建立完毕后,才可以访问,新建立的文件如果没有建立完是不可以被访问的 如果想建 ...
- sitemap.xml 静态和动态生成页面 shopnc二次开发 动态生成sitemap.xml
Sitemap 可方便网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页.最简单的 Sitemap 形式,就是XML 文件,在其中列出网站中的网址以及关于每个网址的其他元数据(上次更新的时间.更改的 ...
- Java生成sitemap网站地图
访问我的博客 sitemap 是什么?对应没有接触过网站 SEO 的同学可能不知道,这里引用一下百度站长的一段解释. Sitemap(即站点地图)就是您网站上各网页的列表.创建并提交Sitemap有助 ...
- .net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml)
.net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml) 首先设置 Startup.cs 文件 配置 ConfigureServices services .Add ...
- Python脚本生成sitemap
项目须要用脚本生成sitemap,中间学习了一下sitemap的格式和lxml库的使用方法.把结果记录一下,方便以后须要直接拿来用. 来自Python脚本生成sitemap 安装lxml 首先须要pi ...
- NHibernate生成实体类、xml映射文件
最近工作电脑装完win10后,之前使用的codeSmith安装不了,索性自己写一个. 界面比较简单,如下图: 第一行为Oracle数据库的连接字符串.连接成功后,填充表到第4行的下拉列表中. 第二行为 ...
- 使用mybatis-generator自动生成model、dao、mapping文件
参考文献:http://www.cnblogs.com/smileberry/p/4145872.html 一.所需库 1.mybatis-generator库 2.连接DB的驱动(此以mysql为例 ...
随机推荐
- Struts2 Action的3种创建方式
Action是Strut2的核心内容,相当于Servlet,用于处理业务. Action是一个Java类,直接新建Java类即可. Action有3种实现方式. 1.使用POJO,设置成员变量,写对应 ...
- Jmeter对服务器进行压力测试
一.插件准备 下载地址:https://jmeter-plugins.org/downloads/all/ 1.下载插件管理: 2.将管理插件放到jmeter/../ext文件夹中 3.在插件管理中搜 ...
- Nginx01(Nginx简介)
一:序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. 二:Nginx常用功能 1.Http代理 ...
- Confluence 邮箱设置
Confluence有两种方法设置邮箱 原理: confluence服务器配置好邮箱信息,用户触发邮件发送规则时,confluence服务使用已配置的邮箱信息登录到邮箱服务器,进行发件服务. 那么我们 ...
- flask中利用session实现用户记住密码
“记住密码”的实质,实际上就是把cookie的有效期设置的长一点,当用户没有选择记住密码时,cookie的有效期为会话结束,选择记住密码后,会根据服务器的设置延长cookie的有效期,默认是31天.在 ...
- elipse常用插件下载
https://www.douban.com/note/142165105/ https://marketplace.eclipse.org/ http://maven.aliyun.com/nexu ...
- 02-numpy-笔记-amin
>>> a = np.arange(4).reshape((2,2)) >>> a array([[0, 1], [2, 3]]) >>> np. ...
- 一篇文章搞定git
git学习 一.背景(当成故事去读) Linus 虽然创建了 Linux,但 Linux 的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为 Linux 编写代码,那 Linux 的代码是如何管 ...
- Docker安装(二)
一.前提条件 目前,CentOS 仅发行版本中的内核支持 Docker. Docker 运行在 CentOS 7 上,要求系统为64位.系统内核版本为 3.10 以上. Docker 运行在 Cent ...
- TCP四次握手断开连接(十一)
建立连接非常重要,它是数据正确传输的前提:断开连接同样重要,它让计算机释放不再使用的资源.如果连接不能正常断开,不仅会造成数据传输错误,还会导致套接字不能关闭,持续占用资源,如果并发量高,服务器压力堪 ...