PHP建站技术分享-从入门到精通_各类知识收集PHP建站技术分享-从入门到精通_各类知识收集PHP建站技术分享-从入门到精通_各类知识收集

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > 工作总结

CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)

管理员 2025-02-18
工作总结
41

在 CodeIgniter(CI)框架中,有许多经典的操作类可以帮助开发者快速实现常见的功能,如路由配置、伪静态、分页、Session 管理、验证码生成等。以下是对这些常用操作类的总结和示例。


1. 路由(Routing)

路由是 CodeIgniter 中用于将 URL 映射到控制器和方法的重要功能。通过路由配置,可以实现 URL 的美化和自定义。

配置路由

在 application/config/routes.php 文件中配置路由规则。

php
复制
$route['default_controller'] = 'home'; // 默认控制器$route['404_override'] = ''; // 404 页面$route['translate_uri_dashes'] = FALSE; // 是否将 URI 中的下划线转换为中划线// 自定义路由$route['product/(:num)'] = 'catalog/product_lookup/$1'; // 将 product/123 映射到 catalog/product_lookup/123$route['blog/(:any)'] = 'blog/view/$1'; // 将 blog/abc 映射到 blog/view/abc

示例:自定义路由

php
复制
$route['login'] = 'auth/login'; // 将 /login 映射到 auth 控制器的 login 方法$route['user/profile/(:num)'] = 'user/profile/$1'; // 将 /user/profile/1 映射到 user/profile/1

2. 伪静态(URL Rewrite)

伪静态是通过 URL 重写技术将动态 URL 转换为静态 URL,以提高 SEO 效果和用户体验。

启用伪静态

  1. 在 application/config/config.php 中设置:

    php
    复制
    $config['index_page'] = ''; // 去掉 index.php
  2. 在服务器(如 Apache)中配置 .htaccess 文件:

    apache
    复制
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]

示例:伪静态 URL

  • 动态 URL:http://example.com/index.php/product/view/123

  • 伪静态 URL:http://example.com/product/view/123


3. 分页(Pagination)

分页是处理大量数据时的常用功能。CodeIgniter 提供了强大的分页类来简化分页操作。

配置分页

在控制器中加载分页库并配置分页参数。

php
复制
$this->load->library('pagination');$config['base_url'] = site_url('product/list'); // 分页链接$config['total_rows'] = 200; // 总记录数$config['per_page'] = 10; // 每页显示记录数$config['uri_segment'] = 3; // URI 分段$this->pagination->initialize($config);$data['pagination_links'] = $this->pagination->create_links();

在视图中显示分页链接

php
复制
echo $data['pagination_links'];

4. Session 管理

Session 是用于在不同页面之间存储用户数据的机制。CodeIgniter 提供了 Session 类来管理会话数据。

配置 Session

在 application/config/config.php 中配置 Session 参数。

php
复制
$config['sess_driver'] = 'files'; // Session 驱动(files/database/redis)$config['sess_save_path'] = NULL; // 保存路径$config['sess_expiration'] = 7200; // Session 过期时间(秒)

使用 Session

php
复制
$this->load->library('session');// 设置 Session 数据$this->session->set_userdata('username', 'john_doe');// 获取 Session 数据$username = $this->session->userdata('username');// 删除 Session 数据$this->session->unset_userdata('username');// 销毁 Session$this->session->sess_destroy();

5. 验证码(CAPTCHA)

验证码是用于防止机器人提交表单的常用工具。CodeIgniter 提供了验证码库来生成和验证验证码。

生成验证码

  1. 在控制器中加载验证码库并生成验证码:

    php
    复制
    $this->load->helper('captcha');$vals = array(
        'word'          => rand(1000, 9999), // 验证码内容
        'img_path'      => './captcha/', // 图片保存路径
        'img_url'       => base_url('captcha/'), // 图片访问路径
        'font_path'     => './path/to/fonts/texb.ttf', // 字体路径
        'img_width'     => 150,
        'img_height'    => 30,
        'expiration'    => 7200 // 过期时间);$cap = create_captcha($vals);$data['captcha_image'] = $cap['image']; // 验证码图片$this->session->set_userdata('captcha_word', $cap['word']); // 保存验证码到 Session
  2. 在视图中显示验证码:

    php
    复制
    echo $data['captcha_image'];

验证验证码

php
复制
$user_input = $this->input->post('captcha'); // 用户输入的验证码$captcha_word = $this->session->userdata('captcha_word'); // 正确的验证码if ($user_input === $captcha_word) {
    echo '验证码正确!';} else {
    echo '验证码错误!';}

6. 文件上传

文件上传是 Web 应用中常见的功能。CodeIgniter 提供了文件上传类来简化文件上传操作。

配置上传

在控制器中加载上传库并配置上传参数。

php
复制
$this->load->library('upload');$config['upload_path'] = './uploads/'; // 上传路径$config['allowed_types'] = 'gif|jpg|png'; // 允许的文件类型$config['max_size'] = 2048; // 文件大小限制(KB)$this->upload->initialize($config);if ($this->upload->do_upload('userfile')) { // userfile 是文件字段名
    $data = $this->upload->data(); // 上传成功} else {
    $error = $this->upload->display_errors(); // 上传失败}

7. 表单验证

表单验证是确保用户输入数据合法性的重要步骤。CodeIgniter 提供了表单验证类来简化验证操作。

配置验证规则

php
复制
$this->load->library('form_validation');$this->form_validation->set_rules('username', 'Username', 'required|min_length[5]');$this->form_validation->set_rules('password', 'Password', 'required');if ($this->form_validation->run() == FALSE) {
    // 验证失败} else {
    // 验证成功}

总结

CodeIgniter 提供了丰富的操作类来简化常见功能的开发,包括:

  • 路由:自定义 URL 映射。

  • 伪静态:美化 URL。

  • 分页:处理大量数据的分页显示。

  • Session:管理用户会话数据。

  • 验证码:防止机器人提交表单。

  • 文件上传:处理文件上传。

  • 表单验证:确保用户输入数据的合法性。

通过掌握这些经典操作类,可以显著提高开发效率并构建功能强大的 Web 应用。



本文关键词: CI 框架 常用 经典 操作 总结

希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, LeCMS, ClassCMS, Fastadmin, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部