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. Python统计百分比及排序

    source.txt: 60行 89 91 93 90 92 92 94 92 89 95 93 92 90 92 93 94 94 92 90 92 92 92 ... 统计各个值的百分比,并排序 ...

  2. 【System】shell 实现 bat 的pause功能

    read -rsp $'Press enter to continue...\n' 参考资料: http://stackoverflow.com/questions/92802/what-is-the ...

  3. JavaScript——同源策略

    概念:同源策略是客户端脚本(尤其是Javascript)的重要的安全度量标准.它最早出自Netscape Navigator2.0,其目的是防止某个文档或脚本从多个不同源装载.   这里的同源指的是: ...

  4. Range Sum Query 2D - Mutable & Immutable

    Range Sum Query 2D - Mutable Given a 2D matrix matrix, find the sum of the elements inside the recta ...

  5. Java 抽象类与oop三大特征

    面向对象主要有三大特性:继承和多态.封装. 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为: abstract voi ...

  6. vm10.0key

    5F4EV-4Z0DP-XZHN9-0L95H-02V17

  7. mysql创建用户

    mysql创建用户 创建用于localhost连接的用户并指定密码 mysql> create user 'pcom'@'localhost' identified by 'aaa7B2249' ...

  8. NGUI实现Sprite裁切成圆形或者椭圆形(不完美)

    先上效果 有个问题就是,UISprie用的Atlas的公用的材质,无法从当前要绘制的片段shader上获得uv百分比,所以当有其他的Sprite使用相同的Atlas时显示就有问题 其实Mesh是可以接 ...

  9. Qt字符转换

    1.QString  -> char* #include<QTextCodec> QTextCodec::setCodecForLocale(QTextCodec::codecFor ...

  10. Python自动化运维工具fabric的安装

    使用shell命令进行复杂的运维时,代码往往变得复杂难懂,而使用python脚本语言来编写运维程序,就相当于开发普通的应用一样,所以维护和扩展都比较简单,更重要的是python运维工具fabric能自 ...