PHP的CI框架

CI是PHP的一个框架,使用该框架可以使得我们的代码更简洁,具有较高的可维护性。CI框架是基于MVC进行使用的。MVC是简称,M是指模型(Model),通常是用于处理数据,与数据库的打交道的。V是指视图(View),是用来定义如何显示数据以及其他内容的。C是指控制器(Controller),是处理模型和视图的工具。我们的CI框架是基于MVC的,我们将程序分为模型,视图和控制器三个部分。

上次,我们已经用php完成了一个小程序,这次就把这个小程序整合为CI框架。

index.php是入口文件,入口文件是不能改动的。我们只需要写好控制器,就可以通过调用模型和视图来访问页面了。

下面就是该程序整合到CI框架的代码:

Controller

project.php

<?php

class project extends CI_Controller{

function __construct(){

parent::__construct();

$this->load->model(‘project_model‘);

}

public function index()

{

$this->load->view(‘project_view‘);

}

//保存数据的的方法

function save(){

//调用project_model中的save_project方法

$this->project_model->save_project($_POST[‘project_name‘]);

//获取插入的id

$id = mysql_insert_id();

$content = $_POST[‘context‘];

//替换字符

$content = str_replace(".",".#",$content);

$content = str_replace("?","?#",$content);

$content = str_replace("!","!#",$content);

//分解内容

$str = explode("#",$content);

//获取总数

$count = count($str)-1;

$items = null;

for($i = 0 ; $i < $count ; $i++) {

$items .= "(‘{$str[$i]}‘,{$id})".‘,‘;

}

$items = rtrim($items,‘,‘);

$this->project_model->save_projectsentence($items);

$this->getdatas();

}

//显示数据

function getdatas(){

$list = $this->project_model->getdatas();

foreach($list->result_array() as $v){

$result[] = $v;

}

$data[‘list‘] = $result;

$this->load->view(‘xianshi‘,$data);

}

}

?>

Model

project_model.php

<?php

//require_once ‘common_model.php‘;

/**

增加上面类库返回结果集是以数组形式返回,原生态ci类库返回的结果集是object对象

*/

class project_model extends CI_Model{

function __construct(){

parent::__construct();

}

M

//向project表插入name字段方法

function save_project($project){

$sql="insert into project(name)VALUES(‘{$project}‘)";

return $this->db->query($sql);

}

//向project_sentences表插入sentence和id字段方法

function save_projectsentence($items){

$query = "insert into project_sentence (sentences,id)values{$items}";

return $this->db->query($query);

}

//显示name与sentence字段

function getdatas(){

$sql = "select p.name,ps.sentences from project p join project_sentence ps on p.id = ps.id";

// return $this->_query($sql);

return $this->db->query($sql);

}

}

?>

View

因为这里有两个网页,所以相对于CI,我们这里应有两个视图。分别是project_view(输入页面)和xianshi.php(显示页面)。

project_view

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>输入页面</title>

</head>

<body>VI

<form action="<?php echo site_url(‘project/save‘);?>" method="POST">

Project: <input type="text" name="project_name" />

<br>Context: <textarea name="context" rows="20" cols="80"></textarea>

<input type="submit">

</form>

</body>

</html>

xianshi.php

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>显示页面</title>

</head>

<body>

<div><a href="<?php echo site_url(‘project/index‘);?>">返回</a></div>

<table width="500" cellpadding="6" cellspacing="6" border="1">

<tr>

<th>Project_name</th>

<th>Sentences</th>

</tr>

<?php $name = null;

if(!empty($list)){

foreach($list as $v){

if($name != $v[‘name‘]){

$name = $v[‘name‘];

?>

<tr>

<td align="center"><?php echo $v[‘name‘];?></td>

<td align="center"><?php echo $v[‘sentences‘];?></td>

</tr>

<?php }else{?>

<tr>

<td align="center"></td>

<td align="center"><?php echo $v[‘sentences‘];?></td>

</tr>

<?php }}}?>

</table>

</body>

</html>

至此我们的代码就整合完了,我们可通过网址http://192.168.1.144/index.php/project/index来访问了。

PHP的CI框架

时间: 2024-08-01 06:33:57

PHP的CI框架的相关文章

CI框架源码阅读笔记3 全局函数Common.php

从本篇开始,将深入CI框架的内部,一步步去探索这个框架的实现.结构和设计. Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap引导文件都会最先引入全局函数,以便于之后的处理工作). 打开Common.php中,第一行代码就非常诡异: if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 上一篇(CI框架源码阅读笔记2 一切的入口 index

后盾网-CI框架学习笔记

CI框架: 表单验证: 载入验证类 $this->load->library('form_validation'); 设置规则 $this->form_validation->set_rules('name值','规则'); 执行验证 $this->form_validation->run() 表单验证辅助函数: $this->load->helper('form'); 1. set_value('name') //重填数据 2. form_error('n

CI框架3.0版本以后,前后台分离的方法。

笔者认为,CI框架官方其实并没有考虑这个前后台分离的问题,所以没有官方的分离方法.而且,2.0版本的分离,也被官方认为这是一个bug.所以在前后台分离这个问题上,其实并不如thinkphp框架. 在CI框架2.0版本时的,大多数人认为可以这样做,前后台分离是可以直接在controller下,分admin和home目录的. 这是2.0版本时 其实,今天我用的是3.0版本的CI框架.在前后台分离这个问题,我也纠结了比较久.但是为了项目结构目录的清晰,还是要做前后台分离的. 我大概是做了这样一个分离.

CI框架剖析一

CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而"优雅"的工具包,它可以为开发者们建立功能完善的 Web 应用程序.本人使用CI框架有一段时间了,现在决定把该框架源码剖析一遍,理解其构架的用意与精妙之处.分析完所有的源码后,我才来总结CI框架的优缺点,以及适用于哪些场景开发. 目前CI最新的版本是 3.1.4, 4.0版本也即将发布.我们先分析3.1.4版本,然后再看看4.0有哪些重大突破. 首先是查看根目录下index.php文件了,主要定义了几个常量:

【ci框架基础】之部署百度编辑器

在ci框架下加载编辑器,现在复习下内容.我的框架文件名称为ci 1.下载百度编辑器ueditor,http://ueditor.baidu.com/ 一般情况下下载ubuilder版即可,并将ueditor复制到ci框架的根目录下. 下载好的编辑器目录为:-ueditor----dialogs     弹出对话框对应的资源和JS文件----lang        编辑器国际化显示的文件----php         涉及到服务器端操作的后台文件----themes      样式图片和样式文件-

ngnix 配置CI框架 与 CI的简单使用

ngnix 支持 CI框架1.修改config.php 参考网址:https://www.chenyudong.com/archives/codeigniter-in-nginx-and-url-rewrite.html 2. ci小样例 http://www.mamicode.com/info-detail-514033.html 控制器的默认配置文件: routes.php, 不修改默认为跳转到welcome控制器 3.修改CI为子目录 https://yq.aliyun.com/artic

CI框架源码分析

这几天,把ci源码又看了一遍,于是有了新的收获.明白了在application目录下core文件夹的作用,就是用来写ci核心文件的扩展的, 而且需要在配置文件中添加类前缀MY_. CI框架整体是但入口文件,入口文件是Index.php在该文件中定义了一些系统变量,比如BASEPATH和 APPPATH等,最后加载ci框架的核心文件CodeIgniter文件,该文件位于system文件夹下的core文件夹下,此文件夹是ci的核心文件,包括了 controller,model,router,conf

CI框架程序--本地调试之后部署新浪SAE

转载之前写的一点点东西,希望可以帮助到一些朋友 前几天给朋友写了个简单的网站, 想想还是部署到服务器上让朋友看一下效果! 用CI框架写的,有个SAE新浪云的账号,可以用!就部署到上面去了!途中遇到了一些问题!一一解决了! 在这里分享一下 供遇到这些问题的朋友们做个参考! 首先遇到的问题就导入SQL数据的时候出错,由于我SAE上之前写过一个程序,导入数据的时候,怎么选都选不到刚创建的MySql上, 貌似是要绑定一下! 我用的mac 火狐浏览器, 好像SAE上的MySQL的phpmyadmin跟这个

CI框架源码阅读笔记5 基准测试 BenchMark.php

上一篇博客(CI框架源码阅读笔记4 引导文件CodeIgniter.php)中,我们已经看到:CI中核心流程的核心功能都是由不同的组件来完成的.这些组件类似于一个一个单独的模块,不同的模块完成不同的功能,各模块之间可以相互调用,共同构成了CI的核心骨架. 从本篇开始,将进一步去分析各组件的实现细节,深入CI核心的黑盒内部(研究之后,其实就应该是白盒了,仅仅对于应用来说,它应该算是黑盒),从而更好的去认识.把握这个框架. 按照惯例,在开始之前,我们贴上CI中不完全的核心组件图: 由于BenchMa

CI框架源码阅读笔记1 - 环境准备、基本术语和框架流程

最开始使用CI框架的时候,就打算写一个CI源码阅读的笔记系列,可惜虎头蛇尾,一直没有行动.最近项目少,总算是有了一些时间去写一些东西.于是准备将之前的一些笔记和经验记录下来,一方面权作备忘,另一方面时刻提醒自己:借鉴和学习才有出路,忘记过去意味着背叛! 基本术语说明 在本文开始之前,有必要对文中反复出现的术语做一个简单的说明,如果你对这一部分已经熟谙,完全可以略过.本文中反复出现和提及的术语包括: 前端控制器(Front Controller): 用于集中控制用户的所有请求的组件,将用户的请求发