CodeIgniter是一个小巧但功能强大的 PHP 框架,官网地址。
在官网可以下载该框架。
下面来说明一下CodeIgniter中的简单操作。
一、Controller的创建与设置
1.在Controller目录下创建blog.php文件:
2.blog.php中的代码如下:
<?php
class Blog extends CI_Controller {
function index(){
echo 'Hello World!';
}
}
?>
3.输入地址。注意:不要加后缀。浏览页面:
这里显示的其实是index函数中的数据,因为默认会调用index方法。
我们不妨将代码做如下修改:
<?php
class Blog extends CI_Controller {
function index(){
echo 'Hello World!';
}
function hello(){
echo 'Hello WHY!';
}
}
?>
然后将访问路径也修改一下,就会发现其实输入或者不输入/index都是访问的index方法,但是如果输入其他值就会访问其他的function的内容:
在CodeIgniter中,很多设置都已经配置好了,我们可以直接修改。
比如修改默认的访问页面,在applications/config中有一个route.php:
$route['default_controller'] = "welcome";
$route['404_override'] = '';
将其中的default_controller改成blog,再在任务栏中输入index.php就会发现输出的是HelloWorld,也就是访问了blog.php页面:
二、View的创建与设置
1.在views目录下新建文件blog_view.php:
2.返回到controller文件夹下的blog.php,将简单的echo改为加载blog_view页面,实现其controller的真正价值:
<?php
class Blog extends CI_Controller {
function index(){
$this->load->view('blog_view');
}
}
?>
3.在页面中输入网址进行访问,发现页面已经发生了变化:
三、Controller与View之间的数据传输
1.将Controller中的代码作如下修改:
<?php
class Blog extends CI_Controller {
function index(){
$data['myName']="WHY";
$data['head']="'s Blog !";
$this->load->view('blog_view',$data);
}
}
?>
2.将View中的代码作如下修改,注意,不是使用data数组,而是直接的$调用数据:
<html>
<head>
<title><?php echo $myName.$head?></title>
</head>
<body>
<h1>I am <?php echo $myName ?></h1>
</body>
</html>
3.浏览网站:
PS:在CodeIgniter 中<?php echo $myName ?>等价于<?=$myName ?>
下面来使用php输出一个数组。
1.在Controller中作如下修改添加一个数组:
<?php
class Blog extends CI_Controller {
function index(){
$data['myName']="WHY";
$data['head']="'s Blog !";
$data['todo']=array('eat','sleep','call');
$this->load->view('blog_view',$data);
}
}
?>
2.在View中作如下修改显示数组:
<html>
<head>
<title><?php echo $myName.$head?></title>
</head>
<body>
<h1>I am <?php echo $myName ?></h1>
<ol>
<?php foreach($todo as $item): ?>
<li><?=$item?></li>
<?php endforeach; ?>
</ol>
</body>
</html>
3.刷新页面,已经可以正常显示了:
如果不习惯endforeach,也可以使用标准的PHP语言:
<html>
<head>
<title><?php echo $myName.$head?></title>
</head>
<body>
<h1>I am <?php echo $myName ?></h1>
<ol>
<?php foreach($todo as $item){ ?>
<li><?= $item?></li>
<?php } ?>
</ol>
</body>
</html>
当然,也可以重写构造方法:
<?php
class Blog extends CI_Controller {
function __construct()
{
parent::__construct();
}
function index(){
$data['myName']="WHY";
$data['head']="'s Blog !";
$data['todo']=array('eat','sleep','call');
$this->load->view('blog_view',$data);
}
}
?>