当前位置: 编程技术>php
本页文章导读:
▪CodeIgniter生成网站sitemap地图的方法
1.建立了一个名为sitemap的控制器 代码如下:<?phpif (!defined('BASEPATH')) exit ('No direct script access allowed');class Sitemap extends CI_Controller{ public function __construct() { parent::__construct(); $this->load->.........
▪php模板原理讲解
代码如下:$data = array( 'title'=>'ilsea', 'list'=>array( 'hello', 'world' ) );include('show.php');// show.php 模板文件&.........
▪php构造函数实例讲解
PHP官网定义: 代码如下:构造函数是类中的一个特殊函数,当使用 new 操作符创建一个类的实例时,构造函数将会自动调用。当函数与类同名时,这个函数将成为构造函数。如果一个类没有构.........
[1]CodeIgniter生成网站sitemap地图的方法
来源: 互联网 发布时间: 2013-11-30
1.建立了一个名为sitemap的控制器
代码如下:
<?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);
}
}
首先加载sitemapxml模型类,index方法调用两个方法,分别获取文章列表和类别列表,以在模板中输出。
2.创建一个名为sitemapxml的模型
代码如下:
<?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的模板
代码如下:
<!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了。
[2]php模板原理讲解
来源: 互联网 发布时间: 2013-11-30
代码如下:
$data = array(
'title'=>'ilsea',
'list'=>array(
'hello',
'world'
)
);
include('show.php');
// show.php 模板文件
<div>
<?php
echo $data['title'];
echo '<br/>';
print_r($data['list']);
?>
</div>
定义一个函数用来包含模板,并传递数据
代码如下:
// 定义一个函数用来包含模板,并传递数据,应该定义在公用函数库里的,这里我就直接写在这儿了
function template($template,$data)
{
if(isset($data)){
foreach($data as $key=>$val){
$$key = $val;
}
unset($data);
}
include($template);
}
template('show.php',$data);
此例当然不是完整的写法,仅仅是一个小小的示例,模板赋值的原理就是这样的。
[3]php构造函数实例讲解
来源: 互联网 发布时间: 2013-11-30
PHP官网定义:
代码如下:
构造函数是类中的一个特殊函数,当使用 new 操作符创建一个类的实例时,构造函数将会自动调用。当函数与类同名时,这个函数将成为构造函数。如果一个类没有构造函数,则调用基类的构造函数,如果有的话,则调用自己的构造函数
如a.php一个class a类:
代码如下:
<?php
class a{
function __construct(){
echo 'class a';
}
}
b.php有个class b类继承a类:
代码如下:
<?php
include 'a.php';
class b extends a{
function __construct(){
echo '666666';
//parent::__construct();
}
function index(){
echo 'index';
}
}
$test=new b();
这样写的话,b类有自己的构造函数,那么实例化b类的时候,自动运行构造函数,此时默认不运行父类的构造函数,如果同时要运行父类构造函数,要声明parent::__construct();
代码如下:
<?php
include 'a.php';
class b extends a{
function index(){
echo 'index';
}
}
$test=new b();
此时b类没有自己的构造函数,那么将默认执行父类的构造函数。
最新技术文章: