php codeigniter

1、CI是什么

CI的全称是CodeIgniter, 一个小巧但功能强大的 PHP 框架,作为一个简单而“优雅”的工具包,它可以为 PHP 程序员建立功能完善的 Web 应用程序。基于MVC设计模式,轻量易学,注重安全,文档健全,有丰富的类库。

2、CI能做什么

CI提供了许多丰富的类库,比如文件上传、图片处理、文件压缩、邮件发送等。这些类库的存在大大减低了开发的难度与周期,也减少了整合外部类库的需求。能快速高效的开发各种web应用: 比如电子商务网站、SNS、论坛、内容管理系统(CMS)、客户关系管理系统(CRM)等等。

3、MVC

  • 入口文件:唯一一个让浏览器直接请求的脚本文件
  • 控制器controller:协调模型和视图
  • 模型model:提供数据,保存数据
  • 视图view:只负责显示、表单...
  • 动作action:是控制器中方法,用于被浏览器请求

4、CI中的mvc

  • 访问url使用的是pathinfo:入口文件.php/控制器/动作
  • application目录中:controllers(控制器)、models(模型)、views(视图)

5、c(控制器)。

  • 不需要加后缀;
  • 文件名全部小写(例如:user.php);
  • 所有控制器,直接或间接继承自CI_Controller类;
  • 控制器中,对动作(方法)要求:public、不能已下划线开始、不要与类名相同(否则会被认为是构造方法)。

6、视图。

  • 在控制器中加载视图:$this->load->view(视图)

//直接写视图名,不写扩展名,如有子目录,则加上子目录,可以多次调用view;

  • 视图中直接使用php原生代码,不使用模版引擎;
  • 遍历数据推荐使用<?php foreach($list as $item):?> <?=$item[‘‘]?> <?php endforeach;?>。
  • 分配变量:this->assign(‘key‘,‘value‘)//smarty中;this->load->vars(‘key‘,‘value‘)或$data[‘list‘]=$list this->load

    ->vars($data)

7、超级对象

  • 当前控制器对象(CI_Controller)
  • 提供了很多属性:

    $this->load(类属性,Loader.php中装载器CI_Loader类实例)

    装载器CI_Loader类中提供方法:view()-装载视图、vars()-分配变量到视图、database()-装载数据库操作对象、model()-装载模型对象、helper()-辅助函数。

    $this->uri(类属性,URI.php中CI_URI类的实例)

    CI_URI类中提供方法:

    segment() 用于获取url中的参数   入口文件.php/控制器/动作/参数1/参数2(或者动作中带相对应参数)

    $this->input(类属性,Input.php中CI_Input类的实例)

    CI_Input类中提供方法:

    post() 获取post提交的数据,相当于$_POST ;server() 获取服务器中相关信息,相当于$_SERVER。

  • 在视图中,直接用$this来访问超级对象中的属性。

8、操作数据库

  • 修改配置文件:application\config\database.php
  • 装载数据库对象:$this->load->database();
  • 写sql:$sql="";
  • 执行sql:$this->db->query($sql,[关联数组]); 查询返回数组($res->result()),增删改返回布尔

9、ar(active record,常用的简单sql)操作

  • 修改配置文件:application\config\database.php($active_record = TRUE;);application\config\autoload.php($autoload[‘libraries‘] = array(‘database‘);)
  • 执行查询:$this->db->get(表名);查询表中所有数据
  • 执行插入:$this->db->insert(表名,关联数组数据);
  • 执行更新:$this->db->update(表名,关联数组数据,条件(array))
  • ar连贯操作:$this->db->select(‘id,name‘)->from(‘user‘)->where(‘id >=‘,3)->limit(3,2)->order_by(‘id desc ‘)

    ->get();

    // ci执行的sql($this->db->last_query())为select ‘id‘,‘name‘ from(‘blog_user‘) where ‘id‘ >=3 order by ‘id‘ desc limit 2,3

10、扩展ci控制器

  • application\core\目录下创建MY_Controller.php其中类继承CI_Controller。其他控制器就可以继承MY_Controller。

11、m(模型)

  • User_model继承自CI_Model,可以直接使用超级对象中的属性。文件名全小写,类名首字母大写,建议使用_model作为后缀。
  • 控制器中

    加载模型:$this->load->model(‘User_model‘);

    调用模型获取数据:$list=$this->User_model->getAll();

    加载视图:$this->load->view(‘视图名‘,array(‘list‘=>$list));

12、url相关函数

  • 控制器中加载url(常使用可以在config目录下的autoload.php文件中配置):$this->load->helper(‘url‘);  然后表单中action可写为<?php echo site_url(‘控制器名/方法名‘); ?>
  • base_url:<?php  echo base_url(); ?>获取基础目录(网站根目录)

13、设置路由

  • 在config目录下的routes.php文件中配置
  • $route[‘news/(\d+)\.html‘]=‘article/show/$1‘; //=后面是实际访问地址,前面的生成显示地址

14、ci的分页

  • 装载类文件:$this->load->library(‘pagination‘); $this->load->helper(‘uri‘);
  • $config[‘base_url‘]=site_url(‘控制器/方法名‘); //地址
  • $config[‘total_rows‘]=100; //记录总条数
  • $config[‘per_page‘]=10;  //每页记录数
  • $config[‘first_link‘]=‘首页‘; //设置首页链接显示名称
  • $this->pagination->initialize($config); //初始化设置
  • $page_index=intval($this->uri->segment(3)); //得到起始位置
  • $sql=‘select * from 表名 limit $page_index,10‘;
  • $data[‘links‘]=$this->pagination->create_links(); //创建链接
  • $this->load->view(‘目录/php名‘,$data);

15、文件上传

  • form表单,其中必有属性enctype="multipart/form-data"。
  • input标签,type为file。
  • $config[‘upload_path‘] = ‘./uploads/‘; //上传目录
  • $config[‘allowed_types‘] = ‘gif|jpg|png‘; //文件类型
  • $config[‘max_size‘] = ‘100‘; //文件最大限制
  • $config[‘max_width‘]  = ‘1024‘; //文件最大宽度
  • $config[‘max_height‘]  = ‘768‘; //文件最大高度
  • $this->load->library(‘upload‘, $config); //装载上传文件
  • $this->upload->do_upload(‘input标签名‘)); //上传

16、session(需配置)

  • $this->load->library(‘session‘); (注:md5(uniqid()); //生成密匙)
  • this->session->set_userdata($array); //多页面传递数据
  • this->session->set_flashdata($array); //两页面传递之后销毁

17、验证码(辅助函数CAPTCHA,详细查api)

18、表单验证(详细查api)

时间: 2024-10-06 10:15:42

php codeigniter的相关文章

[CI] 使用CodeIgniter框架搭建RESTful API服务

在2011年8月的时候,我写了一篇博客<使用CodeIgniter框架搭建RESTful API服务>,介绍了RESTful的设计概念,以及使用CodeIgniter框架实现RESTful API的方法.转眼两年过去了,REST在这两年里有了很大的改进.我对于前一篇博客中的某些方面不是很满意,所以希望能利用这次机会写一个更加完善的版本.我的项目基于Phil Sturgeon的CodeIgniter REST Server,遵循他自己的DBAD协议.Phil的这个项目很棒,干净利落,简单实用,并

解决 codeigniter 3 无法通过URI 访问地址()

故事发生在昨天我电脑中毒重装系统之后.我把codeigniter 重新引入到环境目录之后,就再也无法通过 exmple.com/class/function 的形式访问项目了.于是我试图找apache配置的错误.更改apache 设置.更改 index.php ,删除.htaccess 之后.结果是都!不!管!用!于是我又开始尝试是否是环境的问题,下了一个wordpress 然后我发现.什么啊?work correctly,It's make a sence 啊.在然后我确定了,这个绝对不是ap

CodeIgniter中驱动器的使用方法

驱动器“Drivers”是CodeIgniter框架从2.0版本开始加入的新特性.正如中文版译者所言: 笔者看了这三篇英文参考,加上自己的一些理解,对官方文档关于驱动器的这一部分进行了一些补充. 1.什么是驱动器 驱动器是一种特殊类型的类库,它有一个父类和任意多个子类.子类可以访问父类, 但不能访问兄弟类.在你的控制器中,驱动器为你的类库提供了 一种优雅的语法,从而不用将它们拆成很多离散的类. 一般我们看到父类和子类,我们会毫不犹豫的认为他们是继承和派生的关系,但是这里需要注意的是,驱动器中所提

CodeIgniter框架——访问方式 URI 分配变量 数据库操作

1.访问方式: CodeIgniter 的访问URL使用的是pathinfo,入口文件/控制器/方法(/参数列表) eg:localhost/index.php/welcome/index/id 第一段表示调用控制器类. 第二段表示调用类中的函数或方法. 第三及更多的段表示的是传递给控制器的参数,如 ID 或其它各种变量. 2.URI参数获取: 控制器端代码 1 public function getUri($id,$name,$year) 2 { 3 echo "id--->"

CodeIgniter框架——CI的执行流程

应用程序流程图 CodeIgniter执行流程 源码分析——CI到底做了些什么 (由welcome的例子出发——讲解index.php——讲解CodeIgniter.php) (load_class的具体工作.ConFig类的作用.Loader类的作用.Router解析请求.Controller类的具体工作) CodeIgniter框架--CI的执行流程,布布扣,bubuko.com

从CI源码学习PHP高级开发技能——CodeIgniter框架源码深度剖析(4):输出类Output.php

Output类参考说明(摘抄CI手册): 在一般情况下,你可能根本就不会注意到输出类,因为它无需你的干涉, 对你来说完全是透明的.例如,当你使用 加载器 加载一个视图文件时,它会自动传入到输出类,并在系统执行的最后由 CodeIgniter 自动调用.尽管如此,在你需要时,你还是可以对输出进行手工处理. 在说Output类前先说几个知识点和编程技巧: $_SERVER['HTTP_ACCEPT_ENCODING'] .对应请求头是Accept-Encoding:"gzip, deflate&qu

再次用CodeIgniter实现简易blog

天变冷了,人也变得懒了不少,由于工作的需要,最近一直在学习CodeIgniter(CI)框架的使用,没有系统的从PHP基本语法学起,在网上靠百度谷歌,东拼西凑的实现了一些简单的功能.所以,老PHPer可以绕道了. PHP实现简易blog 参考该篇博客所实现的功能,重新用CI实现了一下. 主要实现文章的添加.查看.删除.搜索.这里面最难实现的是文章分页,看似简单的功能,却费了一些功夫. 当然,离一个完整的系统还有很多功能没开发,这里只是简单引用了bootstrap的样式. MVC模型      

CodeIgniter辅助函数

辅助函数是帮助我们完成特定任务的函数.每个辅助函数文件仅仅是一些函数的集合.例如,URL Helpers 可以帮助我们创建链接,Form Helpers 可以帮助我们创建表单,Text Helpers 提供一系列的格式化输出方式,Cookie Helpers 能帮助我们设置和读取COOKIE, File Helpers 能帮助我们处理文件,等等.跟其他部分不同的是,辅助函数不是用类的方式来实现的.它们仅仅是一些简单的过程处理函数. 每个辅助函数处理一个特定的任务,并且不必依靠其他函数. Code

CodeIgniter类库

所有的类库文件存放在system/libraries 文件夹.大多数情况下你需要预先在controller中初始化后才能使用它们: $this->load->library('class name'); class name是你想要使用的类名.例如,要载入"表单验证类",你可以这样做: $this->load->library('form_validation'); 建立你的类库文件 你的类库文件必须保存在 application/libraries 文件夹,C

CodeIgniter 用户指南 基础教程 摘要

CI应用程序流程图: index.php 作为前端控制器,初始化运行 CodeIgniter 所需要的基本资源. Router 检查 HTTP 请求,以确定谁来处理请求. 如果缓存(Cache)文件存在,它将绕过通常的系统执行顺序,被直接发送给浏览器. 安全(Security).应用程序控制器(Application Controller)装载之前,HTTP 请求和任何用户提交的数据将被过滤. 控制器(Controller)装载模型.核心库.辅助函数,以及任何处理特定请求所需的其它资源. 最终视