Email 类

在配置文件中设置 Email 参数

如果您不想使用使用上述方法设定参数,您可以把它们放入一个配置文件。创建一个新文件称为email.php ,添加$config数组在该文件中。然后将该文件保存为config/email.php 它将自动的被使用。如果您保存了一个参数配置文件,就不需要使用$this->email->initialize()函数来初始化参数了.

ftp类

在配置文件中设置参数

如果你更倾向把FTP参数设置保存在一个配置文件中,只需创建一个名为ftp.php的文件, 把 $config 数组添加到该文件中,然后保存成config/ftp.php 它就会自动被读取。

可用连接选项:

hostname- FTP主机名。 通常看起来是这样的: ftp.example.com

username- FTP用户名。

password- FTP密码。

port- 端口号。 默认设置为21

debug- TRUE/FALSE (布尔值). 是否开启调试显示错误信息。

passive- TRUE/FALSE (布尔值). 是否使用被动模式,默认设置为被动模式。

Session类

Sessions会在每个页面载入后开始运行,所以session类必须首先被初始化。您可以在控制器中初始化,也可以在系统中自动加载(译者注:在autoload.php设定)。session类的绝大部分都会在后台运行,所以初始化session时,它session数据会被自动读取、创建和更新。

要在您的控制器构造函数中初始化session类,您可以使用 $this->load->library 函数:
$this->load->library('session');

  

 一旦被载入, session就可以这样使用: $this->session 写入Session:
$newdata['username'] = 'xiaozhe';
$this->session->set_userdata($newdata);
 
 取得Session: 
$info = $this->session->userdata('username');

  

删除Session:
$newdata['username'] = '';

$this->session->unset_userdata($newdata);
 
 URI 类 
URI类提供了帮助你分割URI字符串的函数集合。如果你使用URI路由功能,那么你就可以通过分段来重新分发地址栏信息。
注意: URI类会被系统自动初始化,不必手动启用该功能。
$this->uri->segment(n) 它允许你重新分割一个详细的URI分段。 n 为你想要得到的段数。分割数按照从左至右的顺序编排。
例如,如果你完整的URL的地址如下: http://example.com/index.php/news/local/metro/crime_is_up
每个URI分段的数字编号为: news local metro crime_is_up 默认情况下URI没有分段那么该函数返回 FALSE(布尔值)。
如果分段信息丢失,Segment函数还有第二个参数用来设置你的默认值。例如,这样设置后,当发生错误时,函数就会返回数字“”。
$product_id = $this->uri->segment(3, 0);

  

 温馨提示:这个URI类蛮好用的,具体请看手册哦 User-Agent 类 用户代理类提供的功能是,帮助识别是浏览器,还是移动设备或是机器人访问你的站点。
另外,你可以得到referrer信息(译注:referrer信息就是访客来源信息,可以参照一般的统计系统来理解),以及语言,和支持的字符集信息。
和大多数其他CI类一样,User Agent类也是在你的控制器里使用$this->load->library 方法完成初始化工作
$this->load->library('user_agent');
  
温馨提示:这个User-Agent类蛮好用的,具体请看手册哦 XML-RPC 和 XML-RPC 服务器类 载入类库: 
$this->load->library('xmlrpc');

  

一旦XML-RPC类被载入, XML-RPC 库的对象就可以使用了: $this->xmlrpc 使用下面的方法载入 XML-RPC 服务器类: 
$this->load->library('xmlrpc');
$this->load->library('xmlrpcs');
 
一旦加入,可以通过$this->xmlrpcs,使用 xml-rpcs库对象: $this->xmlrpcs 注意: 使用 XML-RPC 服务器,必须同时载入 XML-RPC 类和 XML-RPCS 服务器类。具体的例子和详细的介绍都有,不懂可以去查看手册,不知道和CURL比,到底哪个更好啊。 Zip 编码类 CodeIgniter的zip编码类允许你创建ZIP压缩文档。文档可以保存在你的桌面或者某个文件夹里 与其他CodeIgniter里的类一样,ZIP类在控制器里完成初始化工作,函数:$this->load->library 
$this->load->library('zip');
 
一旦加载,ZIP库对象可以用$this->zip来使用。 安全类 跨站请求伪造(Cross-site request forgery,CSRF) 打开你的 application/config/config.php 文件,进行如下设置,即可启用 csrf 保护: 
$config['csrf_protection'] = TRUE;

如果你使用 表单辅助函数, form_open() 函数将会自动地在你的表单中插入一个隐藏的csrf字段. 表单验证 下面是如何实施CodeIgniter表单验证的一个简易教程,为了进行表单验证,你需要这三样东西:  一个包含表单的 视图 文件。  一个包含“成功”信息的视图文件,在成功提交后将被显示。  一个接收并处理所提交数据的 控制器 函数。 让我们以一个会员注册表单为例来创建这三个玩意。具体事例在手册上,以下就不进行书写了。
<?php echo validation_errors(); ?>  //返回验证器送回的所有错误信息

<?php echo form_open('login'); ?>//可以设置action= login/index

  级联规则(Cascading Rules) CodeIgniter 允许你将多个规则连接在一起。让我们试一试。修改规则设置函数中的第三个参数,如下:
$this->form_validation->set_rules('username','Username','required|min_length[5]|max_length[12]|is_unique[users.username]');

$this->form_validation->set_rules('password', 'Password', 'required|matches[passconf]');
$this->form_validation->set_rules('passconf', 'Password Confirmation', 'required');
$this->form_validation->set_rules('email','Email','required|valid_email|is_unique[users.email]');
 
 分页类 
$this->load->library('pagination');
$config['base_url'] = 'http://example.com/index.php/test/page/';
$config['total_rows'] = 200;
$config['per_page'] = 20;
$this->pagination->initialize($config);
echo $this->pagination->create_links();

配置类 

获取配置元素,从配置文件中检索元素,使用下面的函数: 
$this->config->item('item name');
 
其中 item name 是 $config 数组中你期望检索的索引. 例如,要获得您选择的语言,你可以这样做: 
$lang = $this->config->item('language');
 
当试图获取的元素不存在时,此函数返回 FALSE (boolean) 。 环境 你可以根据当前的开发/服务环境读取不同的配置文件. ENVIRONMENT 常数在 index.php 定义, 在 处理多环境 一章有详细的描述和说明.一个特定环境的配置文件, 需要按此路径创建或者复制一个文件: application/config/{ENVIRONMENT}/{FILENAME}.php 例如,要创建一个仅'production'环境的 config.php, 你应该: 创建文件夹:application/config/production/ 复制现有的 config.php 到上面的文件夹 编辑 application/config/production/config.php 设定你在'production'环境所需的设置,
当你设置 ENVIRONMENT 常数为 'production', 你刚创建的仅'production'环境的 config.php 配置文件将被加载。 日历类 和大多数其他CI中的类一样,在控制器中初始化日历类用$this->load->library函数:
$this->load->library('calendar');
  
 导入之后,日历类可以这样使用: $this->calendar 这是一个简单的例子告诉你如何去显示一个日历: 
$this->load->library('calendar');
echo $this->calendar->generate();
 
输出类 
$this->output->set_output();
  
告诉CodeIgniter方法执行完毕后,用给定的数据做为输出,而不是使用View里面数据进行输出。例如:
$this->output->set_output($data);
  
 重要:使用这个方法有一点很重要,就要将它放在最后一句,千万要注意啊,到时候出了错,不要怪我没提醒你. 
$this->output->get_output();
 
使用这个方法,你可以得到将要输出的数据,并把它保存起来,留着它用(我们做新闻类型网站的时候,常常需要生成静态的HTML文件). 例如: 
$string = $this->output->get_output();
  
注意,如果先前的数据已经被一个类似 $this->load->view() 的 CodeIgniter 函数送到了输出类,那么只能取得那个函数之后的输出。

输入类
$this->input->post()

$this->input->cookie()

$this->input->server()

$this->input->get()

$this->input->set_cookie()
 
 设置一个 Cookie 的值。这个函数接收两种形式的参数:数组形式和参数形式: 数组形式 用这种形式的话,第一个参数传递的是一个关联数组:
$cookie = array(
'name' => 'The Cookie Name',
'value' => 'The Value',
'expire' => '86500',
'domain' => '.some-domain.com',
'path' => '/',
'prefix' => 'myprefix_',
'secure' => TRUE
);
$this->input->set_cookie($cookie); $this->input->ip_address()

 返回当前用户的IP。如果IP地址无效,返回0.0.0.0的IP:
$this->input->valid_ip($ip)
 
 测试输入的IP地址是不是有效,返回布尔值TRUE或者FALSE。 注意:$this->input->ip_address()自动测试输入的IP地址本身格式是不是有效。 图像处理类 像CodeIgniter 的大多数类一样,图像处理类在你的控制器里使用 $this->load->library 方法来初始化:
$this->load->library('image_lib');

 在图像处理库被载入后就已经做好被使用的准备了。你将用来调用所有图像处理方法的图像处理库对象是:$this->image_lib 处理函数 有五个处理函数可以调用:
$this->image_lib->resize()

$this->image_lib->crop()

$this->image_lib->rotate()

$this->image_lib->watermark()

$this->image_lib->clear()
 
 当调用成功时,这些函数会返回 TRUE, 否则会返回 FALSE. 如果调用失败时,用以下函数可以获取错误信息: 

文件上传类
<?php echo form_open_multipart('upload/do_upload');?> 
 相关函数:
$this->upload->do_upload()

$this->upload->display_errors()

$this->upload->data()

CodeIgniter类的使用的更多相关文章

  1. 一步一步重写 CodeIgniter 框架 (12) —— 代码再重构,回归 CI

    第一课中搭建的基本的 框架模型, 只有一个 index.php 作为执行文件,按这种方式最不稳定的因素就是路径的问题. 我们经常需要通过合适的参数,比如 load_class('output') 或 ...

  2. 一步一步重写 CodeIgniter 框架 (6) —— 实现在控制器Controller中加载View

    1. 控制器将模型类获得的数据,传递给视图进行显示,所以视图必须负责接收数据,另外重要的一点是当模型和视图分开后,多个模型的数据可以传递给一个视图进行展示,也可以说一个模型的数据在多个不同的视图中进行 ...

  3. CI框架 -- 附属类

    有些时候,你可能想在你的控制器之外新建一些类,但同时又希望 这些类还能访问 CodeIgniter 的资源 任何在你的控制器方法中初始化的类都可以简单的通过 get_instance() 函数来访问 ...

  4. Java类的继承与多态特性-入门笔记

    相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...

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

    最开始使用CI框架的时候,就打算写一个CI源码阅读的笔记系列,可惜虎头蛇尾,一直没有行动.最近项目少,总算是有了一些时间去写一些东西.于是准备将之前的一些笔记和经验记录下来,一方面权作备忘,另一方面时 ...

  6. CI框架学习笔记

    打印SQL语句$this->dbRead->last_query(); 重映射方法正如上文所说,URI 的第二段通常决定控制器的哪个方法被调用.CodeIgniter 允许你使用 _rem ...

  7. CI框架 -- 创建类库

    当我们使用 “类库” 这个词的时候,通常我们指的是位于 libraries 这个目录下的那些类. 接下来我们将介绍 如何在 application/libraries 目录下创建你自己的类库,和全局的 ...

  8. 利用CodeIgniter中的Email类发邮件

    CodeIgniter拥有功能强大的Email类.以下为利用其发送邮件的代码. 关于CI的Email类的详情请参考:http://codeigniter.org.cn/user_guide/libra ...

  9. 抽离CodeIgniter的数据库访问类 可以独立使用

    好吧,因为组织需要,最近又开始转战php了,业务逻辑都还好说,主要是老大要求在数据访问层上加上登录态验证.其实这种要求也是合理的,互联网服务要求上层保护下层,但下层不能完全相信上层.但是问题也就来了, ...

随机推荐

  1. js本地解析xls文件

    有个插件在这:oss.sheetjs.com 将demo拷贝整理(注意js的齐全)即可. 这里下载:http://download.csdn.net/detail/lion_awake/9326139

  2. js判断移动端是否安装某款app的多种方法

    本文实例讲解了js判断移动端是否安装某款app的多种方法,分享给大家供大家参考,具体内容如下 第一种方法: 一:判断是那种设备 ? || u.indexOf(; //android终端或者uc浏览器 ...

  3. 《转载》化繁为简 如何向老婆解释MapReduce?

    本文转载自http://server.zol.com.cn/329/3295529.html 昨天,我在Xebia印度办公室发表了一个关于MapReduce的演说.演说进行得很顺利,听众们都能够理解M ...

  4. iOS NSObject 的 isa 属性的类型 Class

    以前对NSObject的isa属性也知道点,但是了解不深,今天看了这篇博文,感觉很好,总结一下: http://chun.tips/blog/2014/11/05/bao-gen-wen-di-obj ...

  5. 9.SpringMVC和json结合传递数据 && 10.SpringMVC获取controller中json的数据

  6. Effective C++ -----条款20:宁以pass-by-reference-to-const替换pass-by-value Prefer pass-by-reference-to-const to pass-by-value

    尽量以pass-by-reference-to-const替换pass-by-value.前者通常比较高校,并可避免切割问题(slicing problem). 以上规则并不适用于内置类型,以及STL ...

  7. linux 共享内存实现

    说起共享内存,一般来说会让人想起下面一些方法:1.多线程.线程之间的内存都是共享的.更确切的说,属于同一进程的线程使用的是同一个地址空间,而不是在不同地址空间之间进行内存共享:2.父子进程间的内存共享 ...

  8. HDU 5821 Ball (贪心排序) -2016杭电多校联合第8场

    题目:传送门. 题意:T组数据,每组给定一个n一个m,在给定两个长度为n的数组a和b,再给定m次操作,每次给定l和r,每次可以把[l,r]的数进行任意调换位置,问能否在转换后使得a数组变成b数组. 题 ...

  9. IOS- 数据存储

    在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: 1.NSKeyed ...

  10. XP/Win7下QTP11循环试用30天的破解方法

    XP/Win7下QTP11循环试用30天的破解方法. XP下:1.找到以下路径:C:\Documents and Settings\All Users\Application Data\SafeNet ...