www.adminn.cn
站长正能量分享网!

CodeIgniter生成网站sitemap地图的方法

AD:阿里云服务器企业会员更优惠 腾讯云香港,韩国免备案服务器1.8折优惠

用CodeIgniter只需要三步就可以生成网站sitemap地图,方法很简单,大家可以参考一下:

1.建立了一个名为sitemap的控制器,代码如下:

  1. if (!defined('BASEPATH')) 
  2.  exit ('No direct script access allowed'); 
  3.  
  4. class Sitemap extends CI_Controller{ 
  5.  public function __construct() { 
  6.   parent::__construct(); 
  7.   $this->load->model('sitemapxml');  
  8.  } 
  9.  
  10.  function index(){ 
  11.   $data['posts']=$this->sitemapxml->getArticle(); 
  12.   $data['categorys']=$this->sitemapxml->getCategory(); 
  13.   $this->load->view('sitemap.php',$data); 
  14.  } 

首先加载sitemapxml模型类,index方法调用两个方法,分别获取文章列表和类别列表,以在模板中输出。

2.创建一个名为sitemapxml的模型,代码如下:

  1. class Sitemapxml extends CI_Model{ 
  2.  public function __construct() { 
  3.   parent :: __construct(); 
  4.   $this->load->database(); 
  5.  } 
  6.  
  7.  public function getArticle(){ 
  8.   $this->db->select('ID,post_date,post_name'); 
  9.   $this->db->order_by('post_date''desc'); 
  10.   $result=$this->db->get('posts'); 
  11.   return $result->result_array(); 
  12.  } //phpfensi.com 
  13.  
  14.  public function getCategory(){ 
  15.   $this->db->select('c_sname'); 
  16.   $result=$this->db->get('category'); 
  17.   return $result->result_array(); 
  18.  } 

模型里面定义两个方法,获取文章列表和类别列表。

3.创建一个名为sitemap.php的模板,代码如下:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  2. <html xmlns="http://www.w3.org/1999/xhtml"
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5. <title>sitemap</title> 
  6. </head> 
  7. <body> 
  8. <?php 
  9. echo htmlspecialchars('<?xml version="1.0" encoding="utf-8"?>').'<br/>'
  10. echo htmlspecialchars('<urlset>').'<br/>'
  11.  
  12. //首页单独写一个url 
  13. echo htmlspecialchars('<url>').'<br/>'
  14. echo htmlspecialchars(' <loc>').'http://aa.sinaapp.com'.htmlspecialchars('</loc>').'<br/>'
  15. echo htmlspecialchars('<lastmod>').date('Y-m-d',time()).htmlspecialchars('</lastmod>').'<br/>'
  16. echo htmlspecialchars('<changefreq>').'daily'.htmlspecialchars('</changefreq>').'<br/>'
  17. echo htmlspecialchars('<priority>').'1'.htmlspecialchars('</priority>').'<br/>'
  18. echo htmlspecialchars('</url>').'<br/>'
  19.  
  20. //类别页 
  21. foreach ($categorys as $category){ 
  22.  echo htmlspecialchars('<url>').'<br/>'
  23.  echo htmlspecialchars(' <loc>').'http://aa.sinaapp.com/index.php/home/cat/'.$category['c_sname'].htmlspecialchars('</loc>').'<br/>'
  24.  echo htmlspecialchars('<lastmod>').date('Y-m-d',time()).htmlspecialchars('</lastmod>').'<br/>'
  25.  echo htmlspecialchars('<changefreq>').'weekly'.htmlspecialchars('</changefreq>').'<br/>'
  26.  echo htmlspecialchars('<priority>').'0.8'.htmlspecialchars('</priority>').'<br/>'
  27.  echo htmlspecialchars('</url>').'<br/>'
  28.  
  29. //文章页 
  30. foreach ($posts as $post){ 
  31.  echo htmlspecialchars('<url>').'<br/>'
  32.  echo htmlspecialchars(' <loc>').'http://aa.sinaapp.com/index.php/home/details/'.$post['post_name'].htmlspecialchars('</loc>').'<br/>'
  33.  echo htmlspecialchars('<lastmod>').date('Y-m-d',strtotime($post['post_date'])).htmlspecialchars('</lastmod>').'<br/>'
  34.  echo htmlspecialchars('<changefreq>').'weekly'.htmlspecialchars('</changefreq>').'<br/>'
  35.  echo htmlspecialchars('<priority>').'0.6'.htmlspecialchars('</priority>').'<br/>'
  36.  echo htmlspecialchars('</url>').'<br/>'
  37.  
  38. //留言板 
  39. echo htmlspecialchars('<url>').'<br/>'
  40. echo htmlspecialchars(' <loc>').'http://aa.sinaapp.com/index.php/guest'.htmlspecialchars('</loc>').'<br/>'
  41. echo htmlspecialchars('<lastmod>').date('Y-m-d',time()).htmlspecialchars('</lastmod>').'<br/>'
  42. echo htmlspecialchars('<changefreq>').'weekly'.htmlspecialchars('</changefreq>').'<br/>'
  43. echo htmlspecialchars('<priority>').'0.5'.htmlspecialchars('</priority>').'<br/>'
  44. echo htmlspecialchars('</url>').'<br/>'
  45.  
  46. echo htmlspecialchars('</urlset>'); 
  47. ?> 
  48. </body> 
  49. </html> 

最重要的就是这个模板了,按照sitemap.xml的标准格式,从数据库中读取相关数据,用循环的方式自动生成这样的格式,页面上展示的是html形式的xml的内容。

然后再用一个很笨的方法,将生成的html文本(实际上就是xml文件的显示内容),复制到一个新建的sitemap.xml文件,格式化一下,保存,就产生了一个标准的sitemap.xml文件。因为要用的SAE部署应用,目录不支持写操作,只能这样上传了,隔一段时间这样弄一下就ok了。

模板优惠价: (点击购买)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《CodeIgniter生成网站sitemap地图的方法》
文章链接:https://www.adminn.cn/news/7822.html
本站资源模板仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。2021.5月起,网站调整,暂不再分享免费模板。谢谢理解

Adminn.Cn 站长分享圈

帝国CMS精品模板腾讯云优惠券,代金券

2次开发,学习研究使用!扫码支付后联系QQ677123发货!

支付宝扫一扫打赏