CodeIgniter PHP框架学习之四

调试应用程序
激活调试器:$this->output->enable_profiler(TRUE);
禁用调试器:$this->output->enable_profiler(FALSE);
设定基准点:
$this->benchmark->mark(‘标记1’);
// Some code happens here
$this->benchmark->mark(‘标记2’);
echo $this->benchmark->elapsed_time(‘标记1’, ‘标记2’);//输出两个标记间的代码的执行时间
显示总的执行时间:
在模版文件中使用 <?php echo $this->benchmark->elapsed_time();?> 或 {elapsed_time}
显示内存消耗:
如果你的PHP在安装的时候被配置成–enable-memory-limit,你可以将下面的代码包含到视图文件中显示整个系统的内存使用量:
<?php echo $this->benchmark->memory_usage();?>
注意:这个函数只能在视图文件中使用.这个消耗量就是应用程序的全部内存消耗.
如果不喜欢使用纯PHP,另外一种备用的来显示内存使用量的方式是在视图文件中使用这个伪变量:{memory_usage}

管理应用程序
如果你要对application文件夹进行重命名, 你需要打开应用程序中的index.php文件,对变量$application_folder进行更改:
$application_folder = “application”;
//其值可以是绝对路径(将application文件夹从system文件夹中挪放到服务器的其他的位置时)、相对路径(在一个CodeIgniter下运行多个应用程序时)。注意:路径末尾不要用“/”。

视图文件中的PHP替代语法
自动短标记支持:<?=$variable?>
替代控制结构:
if,for,foreach,和 while 相应的关闭语法分别是:endif,endfor,endforeach,和 endwhile
if(…):

elseif(…):

else:

endif;
替代控制结构中将所有的左花括号“{”替换为冒号“:”;
删除了右花括号“}”;
以关闭语法加分号“;”结束。
安全
1、URI安全:URI 一般只包含下列内容:
字母和数字
波浪符: ~
句号: .
冒号: :
下划线: _
破折号: –
2、跨站脚本过滤(XSS Filtering):
$data = $this->input->xss_clean($data[,bool $is_image]);//当数据是图片文件时需将第二个参数设为true,图片安全则返回true否则返回false
如果你想让codeigniter自动处理POST或者COOKIE数据。你可以在application/config/config.php文件中设定:
$config[‘global_xss_filtering’] = TRUE;
3、使用GET,POST, COOKIE, 或SERVER数据:分别使用一下方法获得:
$this->input->get()
$this->input->post()
$this->input->cookie()
$this->input->server()
例如获得$_POST[‘something’]的数据:$something = $this->input->post(‘something’);
$this->input->get_post()方法将会搜索POST和GET方式的数据流,首先以POST方式搜索参数1中的值,否则以GET方式搜索
以上除了$this->input->server()方法之外,它们都还有第二个参数用以设置是否进行跨站脚本过滤(XSS Filtering)。
比如:$this->input->get_post(‘some_data’, TRUE);
输入类除了上面几个之外还有:
$this->input->ip_address();//获取IP地址
$this->input->valid_ip($ip);//验证IP地址是否有效
$this->input->user_agent();//获取浏览器的user agent信息
4、表单验证:
为了进行表单验证,你需要这三样东西:
㈠、一个包含表单的视图文件。
<html>
<head>
<title>My Form</title>
</head>
<body>
<?php echo validation_errors(); ?>
<?php echo form_open(‘form’); ?>
<h5>Username</h5>
<input value=”<?php echo set_value(‘username’); ?>” size=”50″ />
<h5>Password</h5>
<input value=”” size=”50″ />
<h5>Password Confirm</h5>
<input value=”<?php echo set_value(’email’); ?>” size=”50″ />
<h5>Email Address</h5>
<input value=”” size=”50″ />
<div><input value=”Submit” /></div>
</form>
</body>
</html>
validation_errors()函数用于显示所有错误信息。
显示某个表单域的错误信息:form_error(‘表单域名’);
set_value(‘表单域名'[,’默认值’])函数用于重新提交表单时,用上次输入的值重新填充文本框和文本区。如果你使用一个数组作为一个表单域的域名,你必须将这个数组作为本函数的参数。下面三个输出选择状态:
set_select(‘下拉菜单域名’,’下拉菜单项的值'[,’是否(TRUE/FALSE)默认选中’])
set_checkbox(‘复选框域名’,’复选框项目值'[,’是否(TRUE/FALSE)默认选中’])
set_radio(‘单选框域名’,’单选框项目值'[,’是否(TRUE/FALSE)默认选中’])
㈡、一个包含“成功”信息的视图文件,在成功提交后将被显示。
<html>
<head>
<title>My Form</title>
</head>
<body>
<h3>Your form was successfully submitted!</h3>
<p><?php echo anchor(‘form’, ‘Try it again!’); ?></p>
</body>
</html>
㈢、一个接收并处理所提交数据的控制器函数。
class Form extends Controller {
function index()
{
$this->load->helper(array(‘form’, ‘url’));
$this->load->library(‘form_validation’);
if ($this->form_validation->run() == FALSE)
{
$this->load->view(‘myform’);//表单页面myform.php,保存在你的applications/views/ 文件夹中
}
else
{
$this->load->view(‘formsuccess’);//成功页面formsuccess.php,保存在你的applications/views/ 文件夹中
}
}
}
设置验证规则:要设置验证规则请使用set_rules() 函数:$this->form_validation->set_rules();
该函数使用三个参数:
①、表单域的域名。
②、表单域的名字,它将被插入到错误信息中。例如,如果你有一个表单域叫做“user”你可能给它一个人性化名字叫做“用户名”。
③、为此表单域设置的验证规则。 CodeIgniter允许你将多个规则用竖线“|”连接在一起。任何PHP自身可以接收一个参数的函数都可以被用作一个规则,比如 htmlspecialchars, trim, MD5, 等。要调用一个回调函数只需把函数名加一个”callback_”前缀放在验证规则里,并在你的控制器中添加声明这个新的函数。
你也可以将一系列验证规则作为一个数组$config保存到配置文件application/config/form_validation.php ,然后将此数组作为唯一参数传递给set_rules()。你可以组织这些规则到“组”里。这些组既可以在符合 控制器类/类方法 的调用时自动加载(通过执行$this->form_validation->run()),也可以在用到时你手动调用(通过执 行$this->form_validation->run(‘组名’))。
规则参数列表:
required:如果元素为空,返回FALSE
matches:如果表单元素不匹配参数中所定义的某一项,返回FALSE。相当于枚举。例如:matches[form_item]
min_length:如果表单元素长度小于定义的最小长度,返回FALSE。例如:min_length[6]
max_length:如果表单元素长度大于定义的最大长度,返回FALSE。例如:max_length[12]
exact_length:如果表单元素不是正确的参数值,返回FALSE。 exact_length[8]
alpha:如果表单元素包含字母形式以外的其他字符,返回FALSE。
alpha_numeric:如果表单元素包含字母、数字以外的字符,返回FALSE。
alpha_dash:如果表单元素包含字母、数字、下划线、短横线以外的字符,返回FALSE。
numeric:如果表单元素包含数字以外的字符,返回 FALSE。
integer:如果表单元素包含整数以外的字符,返回 FALSE。
is_natural:如果表单元素包含自然数(0,1,2,3等)以外的字符,返回 FALSE。
is_natural_no_zero:如果表单元素包含非零的自然数(1,2,3等)以外的字符,返回 FALSE。
valid_email:如果表单元素不是一个有效的E-mail地址,返回 FALSE。
valid_emails:如果表单元素中有多个E-mail地址(用半角逗号“,”隔开),只要它们当中的任意一个E-mail地址不是一个有效的E-mail地址,就返回 FALSE。
valid_ip:如果表单元素不是一个有效的IP地址,返回 FALSE。
valid_base64:如果表单元素包含Base64字符编码以外的字符,返回 FALSE。

Leave a Reply