本帖最后由 深深的呼吸 于 2013-4-4 14:18 编辑
本人用CodeIgniter建立了一个小型网站:http://101ban.sinaapp.com/,为了更好的搜索引擎收录,有必要给网站生成一个xml格式的sitemap地图,但是上网找了很多资料,都没发现好的教程,或者功能太过于繁杂。于是自己琢磨弄了一个简单的适合自己的方法,下面分享一下这个方法。 说明:在CodeIgniter环境下开发的程序,放到SAE运行。 1.建立了一个名为sitemap的控制器 PHP复制代码 <?php
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);
}
}
[p =24, null, left ] 复制代码 首先加载sitemapxml模型类,index方法调用两个方法,分别获取文章列表和类别列表,以在模板中输出。
2.创建一个名为sitemapxml的模型
PHP复制代码
<?php
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();
}
public function getCategory(){
$this->db->select('c_sname');
$result=$this->db->get('category');
return $result->result_array();
}
}
复制代码
模型里面定义两个方法,获取文章列表和类别列表。 3.创建一个名为sitemap.php的模板
最重要的就是这个模板了,按照sitemap.xml的标准格式,从数据库中读取相关数据,用循环的方式自动生成这样的格式,页面上展示的是html形式的xml的内容。 然后再用一个很笨的方法,将生成的html文本(实际上就是xml文件的显示内容),复制到一个新建的sitemap.xml文件,格式化一下,保存,就产生了一个标准的sitemap.xml文件。因为要用的SAE部署应用,目录不支持写操作,只能这样上传了,隔一段时间这样弄一下就ok了。 附上已经做好的地址,可以打开看看效果。http://101ban.sinaapp.com/index.php/sitemap 关于sitemap.xml的标准格式,请参加本站另一篇文章:http://tanteng.sinaapp.com/2013/04/sitemap/ (小谈博客原创,转载请注明出处!http://tanteng.sinaapp.com/2013/04/codeigniter-create-sitemap/)
|