`
wangemperor
  • 浏览: 39909 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

CodeIgniter笔记2

    博客分类:
  • php
 
阅读更多

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分段。 为你想要得到的段数。分割数按照从左至右的顺序编排。 例如,如果你完整的URL的地址如下:

http://example.com/index.php/news/local/metro/crime_is_up

每个URI分段的数字编号为:

1 news

2 local

3 metro

4 crime_is_up

默认情况下URI没有分段那么该函数返回 FALSE(布尔值)。如果分段信息丢失,Segment函数还有第二个参数用来设置你的默认值。例如,这样设置后,当发生错误时,函数就会返回数字“0”

$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 编码类

CodeIgniterzip编码类允许你创建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.0IP

 

$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 4.0-dev 版源码学习笔记之四——详细路由过程

    我个人觉得在当前 MVC 流行的架构下,要想去了解一个框架,或者是一个基于此架构下的应用程序,最好的入手方式就是先看路由,虽然路由不是 MVC 里的任何一个,但是知道了路由的来龙去脉就知道了整个框架或者是应用的...

    Codeigniter 4.0-dev 版源码学习笔记之二

    #### 2. 初始化文件(bootstrap.php) `bootstrap.php`文件类似于计算机的BIOS系统,它负责初始化CodeIgniter核心,并将控制权返回给入口文件。 - **定义路径常量**:在初始化过程中,首先定义了一系列路径常量,...

    笔记_CodeIgniter(部分).pdf

    笔记扫描版本

    Codeigniter 4.0-dev 版源码学习笔记之六——控制器

    其实一开始我是很纠结是否要写控制器的源码分析的,因为控制器的源码太少了,少到你不相信这是一个 MVC 里的一个重头。直觉里,大家都觉得控制器作为各个请求的“入口”,其后端应该有很多很多的代码支撑才可以的,...

    Codeigniter 4.0-dev 版源码学习笔记之三

    Codeigniter.php 是 CI 4 的核心所在,在这里接收并处理了 request 请求,安全检查,缓存处理, URL 解析以及路由匹配,执行过滤器,加载运行 Controller ,组装 repsonse 响应并发送等。

    php之CodeIgniter学习笔记

    本文将详细介绍CodeIgniter框架中关于数据库操作的一些常用函数和特性。 数据库自动连接是使用CodeIgniter框架进行数据库操作的第一步。在CodeIgniter中,你可以通过修改配置文件`application/config/autoload.php`...

    ttd.zip_codeigniter_html

    2. `index.php`:这是CodeIgniter项目的入口文件,通常用于引导框架并处理请求。通过这个文件,用户请求会被转发到合适的控制器和方法。 3. `.htaccess`:这是一个Apache服务器的配置文件,用于设置URL重写规则,...

    PHP框架codeigniter留言板实例

    除了视频教程,提供的www.StudyIM.com【雪狐网】.txt文件可能包含与课程相关的笔记或补充资料,对理解和实践这个CodeIgniter留言板实例会有很大帮助。 总的来说,这个实例涵盖了CodeIgniter的基本使用,MVC模式的...

    codeigniter-migration:Codeigniter 3迁移

    Codeigniter 3迁移示例 迁移是一种在多个开发环境中管理...笔记 001_add_users.php:为了快速开发,您可以从phpmyadmin或sqlyog等生成sql代码 002_add_contact.php:这是面向框架的方式,并且肯定会花费一些时间。

    starter-public-edition-5:一个基于CodeIgniter 4PHP应用程序启动器

    一个基于CodeIgniter 4PHP Application Starter,版本5项目资料库笔记该启动器支持多个应用程序。 在尝试运行此启动程序之前,请使用您的特定设置创建自己的.env文件。PHP 如果您是初学者,几乎没有PHP经验,或者您...

    Codeigniter 4.0-dev 版源码学习笔记之五——相对于 3.x 的变化

    CI 为了追上“大家”的脚步,这次跨了一大步,尽量使用了更多的流行设计理念,甚至连 PHP 的支持版本都是从 7 开始起步的。我在之前阅读源码的同时也发现了很多变化的地方,在此把已经发现的列举出来,不过肯定是不...

    韩顺平PHP从入门到精通笔记.zip

    2. PHP框架:探讨常见的PHP框架,如Laravel、Symfony、CodeIgniter等,理解框架的原理和优势。 3. RESTful API设计:学习如何使用PHP构建符合RESTful原则的Web服务接口。 4. PHP安全:探讨防止SQL注入、XSS攻击、...

    starter-public-edition-3:一个基于CodeIgniter 3PHP应用程序启动器

    基于CodeIgniterPHP应用程序入门版本3项目资料库笔记这是平台的较旧版本。 将在支持多个应用程序的Application Starter 4上做进一步的努力。 参见PHP 如果您是初学者,几乎没有PHP经验,或者您没有PHP经验,则可能...

    portal-news:使用 Codeigniter 3 构建的门户新闻项目

    规格: 代码点火器 v3 引导程序 4 Jquery 数据表Ion Auth Codeigniter Sweetalert2 夏日笔记步骤配置: 创建名为 db_blog 的数据库将文件夹数据库中的文件导入到 phpmyadmin 完毕如何以管理员身份登录: 使用“/...

    燕十八PHP培训笔记

    7. **Web框架和库**:可能涉及一些流行的PHP框架,如Laravel、Symfony或CodeIgniter,以及使用PHPMailer发送邮件等实用库。 此外,笔记可能还会涵盖Web服务器配置、PHP配置、安全实践、性能优化等进阶话题。通过...

    aad-sso-codeigniter:使用Azure Active Directory对CodeIgniter站点进行身份验证

    aad-sso-codeigniter 使用... 笔记: 该库使用CodeIgniter的。 这意味着必须配置该库以供使用。 (例如,如果使用,则必须设置目录。) 重要说明:这是一项正在进行的工作。 您不应将其用于任何生产站点或敏感信息。

    todo:这是一个管理待办事项列表和笔记的简单项目。 这是我在学习 codeigniter 时创建的

    这是我在学习 codeigniter 时创建的。 要运行此应用程序,您需要做的是: 创建一个名为:jrdash 的数据库 使用此处包含的文件 jrdash.sql 将表导入到上面创建的数据库中 根据你的配置编辑 jrdash\application\...

Global site tag (gtag.js) - Google Analytics