CodeIgniter生成网站sitemap地图的方法
发布:smiling 来源: PHP粉丝网 添加日期:2020-07-02 11:27:21 浏览: 评论:0
用CodeIgniter只需要三步就可以生成网站sitemap地图,方法很简单,大家可以参考一下:
1.建立了一个名为sitemap的控制器,代码如下:
- if (!defined('BASEPATH'))
- exit ('No direct script access allowed');
- class Sitemap extends CI_Controller{
- public function __construct() {
- parent::__construct();
- $this->load->model('sitemapxml');
- }
- function index(){
- $data['posts']=$this->sitemapxml->getArticle();
- $data['categorys']=$this->sitemapxml->getCategory();
- $this->load->view('sitemap.php',$data);
- }
- }
首先加载sitemapxml模型类,index方法调用两个方法,分别获取文章列表和类别列表,以在模板中输出。
2.创建一个名为sitemapxml的模型,代码如下:
- class Sitemapxml extends CI_Model{
- public function __construct() {
- parent :: __construct();
- $this->load->database();
- }
- public function getArticle(){
- $this->db->select('ID,post_date,post_name');
- $this->db->order_by('post_date', 'desc');
- $result=$this->db->get('posts');
- return $result->result_array();
- } //phpfensi.com
- public function getCategory(){
- $this->db->select('c_sname');
- $result=$this->db->get('category');
- return $result->result_array();
- }
- }
模型里面定义两个方法,获取文章列表和类别列表。
3.创建一个名为sitemap.php的模板,代码如下:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>sitemap</title>
- </head>
- <body>
- <?php
- echo htmlspecialchars('<?xml version="1.0" encoding="utf-8"?>').'<br/>';
- echo htmlspecialchars('<urlset>').'<br/>';
- //首页单独写一个url
- echo htmlspecialchars('<url>').'<br/>';
- echo htmlspecialchars(' <loc>').'http://aa.sinaapp.com'.htmlspecialchars('</loc>').'<br/>';
- echo htmlspecialchars('<lastmod>').date('Y-m-d',time()).htmlspecialchars('</lastmod>').'<br/>';
- echo htmlspecialchars('<changefreq>').'daily'.htmlspecialchars('</changefreq>').'<br/>';
- echo htmlspecialchars('<priority>').'1'.htmlspecialchars('</priority>').'<br/>';
- echo htmlspecialchars('</url>').'<br/>';
- //类别页
- foreach ($categorys as $category){
- echo htmlspecialchars('<url>').'<br/>';
- echo htmlspecialchars(' <loc>').'http://aa.sinaapp.com/index.php/home/cat/'.$category['c_sname'].htmlspecialchars('</loc>').'<br/>';
- echo htmlspecialchars('<lastmod>').date('Y-m-d',time()).htmlspecialchars('</lastmod>').'<br/>';
- echo htmlspecialchars('<changefreq>').'weekly'.htmlspecialchars('</changefreq>').'<br/>';
- echo htmlspecialchars('<priority>').'0.8'.htmlspecialchars('</priority>').'<br/>';
- echo htmlspecialchars('</url>').'<br/>';
- }
- //文章页
- foreach ($posts as $post){
- echo htmlspecialchars('<url>').'<br/>';
- echo htmlspecialchars(' <loc>').'http://aa.sinaapp.com/index.php/home/details/'.$post['post_name'].htmlspecialchars('</loc>').'<br/>';
- echo htmlspecialchars('<lastmod>').date('Y-m-d',strtotime($post['post_date'])).htmlspecialchars('</lastmod>').'<br/>';
- echo htmlspecialchars('<changefreq>').'weekly'.htmlspecialchars('</changefreq>').'<br/>';
- echo htmlspecialchars('<priority>').'0.6'.htmlspecialchars('</priority>').'<br/>';
- echo htmlspecialchars('</url>').'<br/>';
- }
- //留言板
- echo htmlspecialchars('<url>').'<br/>';
- echo htmlspecialchars(' <loc>').'http://aa.sinaapp.com/index.php/guest'.htmlspecialchars('</loc>').'<br/>';
- echo htmlspecialchars('<lastmod>').date('Y-m-d',time()).htmlspecialchars('</lastmod>').'<br/>';
- echo htmlspecialchars('<changefreq>').'weekly'.htmlspecialchars('</changefreq>').'<br/>';
- echo htmlspecialchars('<priority>').'0.5'.htmlspecialchars('</priority>').'<br/>';
- echo htmlspecialchars('</url>').'<br/>';
- echo htmlspecialchars('</urlset>');
- ?>
- </body>
- </html>
最重要的就是这个模板了,按照sitemap.xml的标准格式,从数据库中读取相关数据,用循环的方式自动生成这样的格式,页面上展示的是html形式的xml的内容。
然后再用一个很笨的方法,将生成的html文本(实际上就是xml文件的显示内容),复制到一个新建的sitemap.xml文件,格式化一下,保存,就产生了一个标准的sitemap.xml文件。因为要用的SAE部署应用,目录不支持写操作,只能这样上传了,隔一段时间这样弄一下就ok了。
Tags: CodeIgniter sitemap
- 上一篇:php模板原理讲解
- 下一篇:php curl模拟post请求小实例
相关文章
- ·PHP CodeIgniter学习笔记详解(2014-02-24)
- ·PHP文件上传一些小收获(2014-02-24)
- ·CodeIgniter框架中启用和清除缓存的教程(2017-03-23)
- ·CodeIgniter基本配置详细介绍(2020-06-23)
- ·解决CodeIgniter伪静态失效(2021-02-10)
- ·php生成百度站点地图sitemap类函数(2014-08-20)
- ·php生成百度sitemap站点地图类函数实例(2021-04-17)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)