搬砖笔记:初识CI框架函数

CI框架中$this-load-library()用法分析 本文分析了CI框架中$this->load->library()的用法。分享给大家供大家参考,具体如下: 我第一次加载失败,原来是文件名和类名不同的原因,先总结关于CI加载你自己的类文件注意事项: 1.第三方加载文件应放在application/libraries文件下 2.文件名和类名应该相同,并且首字母大写,比如说文件名Excel.php  类名应该为Excel 3.通过:$this->load->library(‘类’);方式在你需要的地方加载 4.也可以在application/config/autoload.php中加载,在文件中加上 $autoload['libraries'] 立即下载

2019年8月5日 天气多云转晴

今天将从加载library()方法、COOKIE辅助函数、anchor辅助方法、表单验证类、表单辅助函数 五个方面;浅显的学习ci框架。

1. $this->load->library()

提示: 这个函数是用来加载核心类。详情参考

	$this->load->library( 'className', 'config', 'myClassName');
	第一个参数:欲加载的类
	第二个参数:可选,作用是允许你有选择性地传递配置参数。
	第三个参数:可选,给类库分配不同的对象名。
	请注意,当第一个参数使用数组来同时载入多个类时,第三个参数将不起作用。

比如,你想用 CodeIgniter 来发送邮件,第一步就是在你的控制器里加载 email 类。

	$this->load->library('email');

一旦被加载,就可以使用该类了, 使用 $this->email->some_function()。

有目录路径:libraries/flavors/chocolate.php;如何加载这个文件呢?

	$this->load->library('flavors/chocolate');
	注意:这里说的路径是指相对于libraries目录的路径

另外,你可以同时加载多个类(库),只要按照下面的代码为load方法传入一个包含所有要载入的类名的数组即可:

	$this->load->library(array('email','table'));

2.COOKIE辅助函数

	$this->load->helper('cookie');

引入类库

	$this->load->helper('cookie');

设置cookie

	set_cookie("cookie名称",$cookie信息,times过期时间);

获取方式

	get_cookie("cookie名称");

3. anchor

它可以通过三个参数在页面组装出一个你想要的链接。

	 if ( ! function_exists('anchor'))
   {
   		/**Anchor Link
        - Creates an anchor based on the local URL.
          *
        - @param	string	the URL
        - @param	string	the link title
        - @param	mixed	any attributes
        - @return	string
          */
          function anchor($uri = '', $title = '', $attributes = '')
          {
            $title = (string) $title;
            $site_url = is_array($uri)
                ? site_url($uri)
                : (preg_match('#^(\w+:)?//#i', $uri) ? $uri : site_url($uri));

            if ($title === '')
            {
                $title = $site_url;
            }

            if ($attributes !== '')
            {
                $attributes = _stringify_attributes($attributes);
            }

            return '<a href="'.$site_url.'"'.$attributes.'>'.$title.'</a>';
         }
	}

第一个参数:根据你提供的 URL 生成一个标准的 HTML 链接。
第二个参数:链接的文本,如果留空,将使用链接本身作为文本。
第三个参数:为你希望添加到链接的属性,可以是一个字符串,也可以是个关联数组。
因为该方法为CI url_helper内置方法,所以在调用之前需要先把该辅助类引入进来

	$this->load->helper('url');

4.表单验证类

	$this->form_validation->run(); 

run() 方法只在全部成功匹配了你的规则后才会返回 TRUE

设置验证规则

$this->form_validation->set_rules();
上面的方法有 三个 参数:

  1. 表单域名 - 就是你给表单域取的那个名字。
  2. 表单域的 “人性化” 名字,它将被插入到错误信息中。例如, 如果你有一个表单域叫做 “user” ,你可能会给它一个人性化的名字叫做 “用户名” 。
  3. 为此表单域设置的验证规则。
  4. (可选的)当此表单域设置自定义的错误信息,如果没有设置该参数,将使用默认的。

5.表单辅助函数

form_open([$action = ''[, $attributes = ''[, $hidden = array()]]])
生成一个 form 起始标签,并且它的 action URL 会根据你的配置文件自动生成。 你还可以给表单添加属性和隐藏域,另外,它还会根据你配置文件中的字符集参数 自动生成 accept-charset 属性。

使用该函数来生成标签比你自己写 HTML 代码最大的好处是:当你的 URL 变动时, 它可以提供更好的可移植性。

这里是个简单的例子:

	echo form_open('email/send');

上面的代码会创建一个表单,它的 action 为根 URL 加上 “email/send”,向下面这样:

	<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send">

可以通过第二个参数传递一个关联数组来添加属性,例如:

	$attributes = array('class' => 'email', 'id' => 'myform');
	echo form_open('email/send', $attributes);	

另外,第二个参数你也可以直接使用字符串:

	echo form_open('email/send', 'class="email" id="myform"');

上面的代码会创建一个类似于下面的表单:

	<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send" class="email" id="myform">

添加隐藏域

可以通过第三个参数传递一个关联数组来添加隐藏域,例如:

	$hidden = array('username' => 'Joe', 'member_id' => '234');
	echo form_open('email/send', '', $hidden);

你可以使用一个空值跳过第二个参数。上面的代码会创建一个类似于下面的表单:

	<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send">
		<input type="hidden" name="username" value="Joe" />
	    <input type="hidden" name="member_id" value="234" />

文件上传

	form_open_multipart([$action = ''[, $attributes = array()[, $hidden = array()]]])
	参数:	
			$action (string) -- Form action/target URI string
			$attributes (array) -- HTML attributes
			$hidden (array) -- An array of hidden fields' definitions
	返回:	
			An HTML multipart form opening tag
	返回类型:	
	string

这个函数和上面的 form_open() 函数完全一样, 只是它会给表单添加一个 multipart 属性,在你使用表单上传文件时必须使用它。

PHP小复习

	bool in_array  ( mixed  $needle  , array $haystack  [, bool $strict  = FALSE    ] )
	
	在 haystack 中搜索 needle,如果没有设置 strict 则使用宽松的比较。 
	
	如果第三个参数 strict 的值为 TRUE  则 in_array()  函数还会检查 needle 的类型是否和 haystack 中的相同。 
	
	返回值
		如果找到 needle 则返回 TRUE ,否则返回 FALSE 。 

新大陆

查询结果并返回

public function get_userid($username, $password)
    {
        $this->db->select('id,roleid,
        companyid,bsRoleId,adminId,adminRoleId,
        username,password, salesareaid, vendorid');
        $this->db->where('( username = \'' . $username . '\' or username = \'cms_' . $username . '\' )');
        $this->db->where('password', $password);
        $this->db->where('deleted', 0);
        $this->db->where('adminRoleId <>', 0);
        $query = $this->db->get('user');
        $data = $query->row_array();
        
		//关键在这里↓↓↓·
        return isset($data['id']) ? $data : array();
        
    }

人机验证 https://captcha.luosimao.com

CI框架中$this->load->library()用法分析 主要介绍了CI框架中$this->load->library()用法,详细分析了加载library方法的步骤与相关注意事项,需要的朋友可以参考下 立即下载

相关推荐

【FPGA】AD9694调试注意事项

基于FPGA的AD9694设计及其注意事项,包括同步的设计注意事项

weixin_41246509的博客 2903

【ci框架】ci框架中$this->load->library()详解

1.第三方加载文件应放在application/libraries文件下 2.文件名和类名应该相同,并且首字母大写,比如说文件名Excel.php 类名应该为Excel 3.通过$this->load->library('类');方式在你需要的地方加载 4.也可以在application/config/autoload.php中加载,在文件中加上$autoload['libra...

yanglangdan的博客 1139

Mellanox CX7网卡搭配400G光模块实战:从选型到部署的完整指南

本文详细解析了Mellanox CX7网卡与400G光模块的选型策略与部署实践,涵盖硬件对比、兼容性验证及性能调优。重点介绍了OSFP光模块的选择要点和常见问题排查方法,帮助用户构建高性能网络基础设施,适用于AI训练、金融交易等场景。

efc1234567的博客 1291

$this->load->library()使用方法与心得

$this->load->library('class_name', $params,my_classname); 工作原理,可以理解为,将system\libraries\class_name.php和application\config\class_name.php,用原生的php #include()进来。 第一个参数,class_name为要加载的类; 第二个参数,$params 为

qq_33862676的博客 2108

抖音直播“卡黑屏”技术解析:从实现原理到平台风控与合规运营

在直播技术领域,视频流推送与实时互动是核心基础。其原理在于通过编码软件(如OBS)将音视频数据封装后,经由网络协议推送到服务器,再分发给观众。这项技术的价值在于支撑了实时、高并发的在线互动场景,是直播、在线会议等应用的基石。然而,在追求流量和互动的实践中,衍生出一些非常规操作,例如通过技术手段中断或控制视频流推送,仅保留音频和互动功能,以达到特定运营目的。这便涉及到了**卡黑屏**这一具体现象。它本质上是对直播流的人为干预,常与**流量博弈**和**风险规避**等动机相关联。从工程实践角度看,实现方式多样,

weixin_29895109的博客 1302

QT编程之PCM音频播放与采集

Qt5/Qt6通用方案。

深之JohnChen的专栏 1170

ci框架中$this->load->library()详解

我第一次加载失败,原来是文件名和类名不同的原因,先总结关于CI加载你自己的类文件注意事项: 1.第三方加载文件应放在application/libraries文件下 2.文件名和类名应该相同,并且首字母大写,比如说文件名Excel.php  类名应该为Excel 3.通过$this-&gt;load-&gt;library('类');方式在你需要的地方加载 4.也可以在applicatio...

hrbsfdxzhq01的博客 1227

Jev模型入门:从API接入到本地部署的完整实践指南

大模型的应用方式正从单一聊天窗口转向复杂的自动化工作流,而推理模型因具备指令跟随与结构化输出能力,成为构建Agent和数据处理管线的关键组件。Jev作为面向通用场景的推理模型,不仅提供了OpenAI兼容的API接口,还支持本地量化部署,兼顾隐私、可控性与长期成本。本文从模型定位出发,明确Jev与基座模型的差异,随后介绍密钥管理、API调用、参数调优,并深入演示基于Ollama与llama.cpp的本地部署流程,包括GGUF模型文件与chat template的匹配要点。针对实践中的常见问题,如密钥泄露、ma

weixin_29057237的博客 359

php ci框架 实例化类,ci框架如何通过$this->load->library向自定义的类中的构造函数传参?...

class blog_lib{var $CI;var $posts_path;var $file_ext='.md';var $_all_posts;var $_all_tags;var $_all_pockets;public function __construct($pathselect){if (!isset($this->CI)){$this->CI =& get_i...

weixin_35440082的博客 409

【MNE脑电信号处理学习笔记1】数据的读取、可视化、剪裁、滤波和保存

MNE之读取原始数据、可视化数据、剪裁数据、滤波和保存 Reading & visualizaing raw data, cropping, filtering, and saving 原视频教程:Pybrain: M/EEG analysis with MNE Python 原笔记和材料:pybrain_mne 本文根据视频和个人理解对原笔记进行细微修改。 Import the few packages we’ll need import matplotlib import pathlib i

小白家 4216

使用ggplot2包中的双Y轴功能在R语言中可视化时间序列数据,并在时序数据末尾添加数值标签是一种有效的数据展示方式

使用ggplot2包中的双Y轴功能在R语言中可视化时间序列数据,并在时序数据末尾添加数值标签是一种有效的数据展示方式。通过这种方式,我们可以同时展示两个变量的趋势,并在时序数据末尾添加数值标签,使得数据更加直观和易于理解。假设我们有一个包含两个变量的时间序列数据集,一个是时间变量,另一个是对应的数值变量。现在,我们可以使用ggplot2包来创建一个基本的时间序列图,其中包含两个数值变量。接下来,我们将添加一个双Y轴,并在时序数据末尾添加数值标签。函数在数值1的每个数据点上添加数值标签。

Orion_O的博客 269

ci框架&框架设计思路

先来说一下ci的基础用法防止以后忘记,也为了更好的适用到工作中去,我这里用的版本是3.1.6 this−>load−>library();加载自定义类库2>this->load->library();加载自定义类库 this->load->helper();加载辅助函数 创建核心系统类,ci启动时会加载很多的核心类文件,如果我们想修改这些文件或是扩展他们的话,可以这样做,在appli

zhuxineli的专栏 1228

【知识图谱】neo4j桌面版安装与配置-解决无法启功问题(2025年最新最全教程)

(经历过各种版本NEO4J,相比社区版而言,个人感觉桌面版更适合新手,安装调试更少更方便。如果是社区版改桌面版的,记得删除系统变量里NEO4J_HOME这个变量,否则会报错。

知识靠谱的博客 2万+

搬砖笔记:初识CI框架

2019年8月2日 天气晴 初识CodeIgniter框架 本文将浅显的介绍CI框架的接收、跳转、载入;详情请参考CI手册输入类 1. 如何接受get和post的传值 $this->input->post('name'); //括号中的name为欲接受的post中的值,若数据不存在方法将返回false $this->input->post('name',boo...

Kincae的博客 433

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

CI框架源码阅读笔记3 全局函数Common.php

从本篇开始,将深入CI框架的内部,一步步去探索这个框架的实现、结构和设计。   Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap引导文件都会最先引入全局函数,以便于之后的处理工作)。   打开Common.php中,第一行代码就非常诡异: if ( ! defined('BASEPATH')) exit('No

专注、专心 8375

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

CI 框架记录日志函数

代码中的: 是CI框架自带的接值方法,不需要就直接删除 Directory()也是自己封装的递归创建文件夹函数 点击了解 :Directory() /** * 记录日志 */ function logMessage($level, $msg) { $level = strtolower($level); // 支持的错误类型 ...

qq_41921511的博客 2406

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

PHP的CI框架学习

一、前言       完全没想到新公司会使用CI框架,虽然一直听说,但是大家平时还是用laravel,yii,tp多一些,第一次接触CI,值得记录一下。       网上关于CI的文档很多,也很全面,博主这里只是简单的记录下。后续有需要记录的还会持续补充,,并不是一篇对新手很友好的文章了。。 二、CI入门 手册地址:http://codeigniter.org.cn/user_guide/

铁柱的博客 3517

CI3框架初识-钩子

今日花了半天看完ci框架手册,对比其他框架,有所心得:  1.概念上的对比    1.1 CI的钩子(hook),其实就是类似于laravel,shopex等框架的中间件,只是可以通过挂钩点的概念实现过滤在何处实现。如下:    挂钩点 以下是所有可用挂钩点的一份列表: pre_system 在系统执行的早期调用,这个时候只有 基准测试类 和 钩子类 被加载了, 还没有

yuxianjun2012的博客 2023

php 里的cl框架手册,CI框架学习笔记(一)

本文是CI框架学习笔记的第一篇,主要介绍了CI框架的环境安装,基本术语以及框架流程,非常的详细,有需要的朋友可以参考下最开始使用CI框架的时候,就打算写一个CI源码阅读的笔记系列,可惜虎头蛇尾,一直没有行动。最近项目少,总算是有了一些时间去写一些东西。于是准备将之前的一些笔记和经验记录下来,一方面权作备忘,另一方面时刻提醒自己:借鉴和学习才有出路,忘记过去意味着背叛!基本术语说明在本文开始之前,有...

weixin_31847579的博客 1799

CI框架学习笔记第一天

此文章为自己书写,在Word上做的笔记,然后拷贝到这上边的,无任何抄袭。另外若是程序有任何问题可以评论,也可私信我。 若是想看整个学习笔记代码和数据库可点击此处(包含个人书写的项目代码及数据库文件)。学习目标使用CI框架开发商城(前台和后台)。 CI简单介绍小巧,快速。 相对于学习其他框架,更容易掌握。 CI快速入门获取与安装: 在官网下载:http://codeigniter.org

伟仔的小天地 1万+

CI框架部署

1.源码获取 在官网上下载对应版本的源码。当前最新版本是3.1.10版,下载解压后可以看到下面的文件列表。 application就是我们要开发的应用程序的目录; system是CI框架的系统文件,整个框架的核心源码; user_guide是用户手册,可以移除到外面,用于离线阅。 index.php是系统的唯一入口文件; composer.json是依赖管理文件,可以安装组件。 官...

Tacks的博客 3759

论搬砖的重要性

  大多数程序员把自己的职业叫做搬砖,听朋友说是因为总是从网上复制代码或者同事写好的。万能的ctrl+c和ctrl+v,确实作为一个PHP程序员我是经常搬砖的。   但是这个就一些问题了。首先网上大多的代码是别人根据自己的需求来写的,在搬砖的过程中我们可能需要磨一磨这块砖。这也是很正常毕竟满足直接自己的需求的代码还是很少的,所以下面就进入主要内容: 做一个好的网站不容易,从设计数据库到搭建框架...

weixin_30699465的博客 232

php中ci框架分页,Codeigniter(CI)框架分页函数及相关知识

一般在数据分页的时候需要获取当前页的数据和总条数,一般人是在model中封装两个函数分别获取当前页的数据和数据总条数,业务逻辑类似,感觉有点冗余,可以封装在一起:/*** 获取分页数据及总条数* @param string @tablename 表名* @param mixed $where 条件* @param int $limit 每页条数* @param int $offset 当前页*/p...

weixin_39843215的博客 433

[笔记] CI框架session的用户登录

class CI_Controller { /** * Reference to the CI singleton * * @var object */ private static $instance; public $need_login = TRUE; /** * Class constructor * * @return void */ ...

BLOCKGOLD.E的博客 958

CI框架与Thinkphp框架的一些区别

初学CI框架遇到的一些问题,与Thinkphp框架对比的不同之处。 system是框架核心 application是项目目录 index.php是项目入口文件 其他目录可以删除 控制器命名规则 控制器不加 Controller 后缀, 如 user.php 这就是一个控制器 ...

lxw1844912514的博客 2719

php ci 过虑器,关于CI框架安全过滤函数的介绍

这篇文章主要介绍了CI框架安全过滤函数,结合实例形式分析了CodeIgniter框架去空、防止XSS的函数定义与使用方法,并附带了原生PHP进行各种常见安全过滤相关操作技巧,需要的朋友可以参考下本文实例讲述了CI框架安全过滤函数。分享给大家供大家参考,具体如下:1、CI框架版本:/*** 自动过滤变量,进行XSS,去空* 支持:单个字符串,多维数组,数字* @param type $param =...

weixin_39760619的博客 335
上一篇: 搬砖笔记:初识CI框架
下一篇: MySql中数据类型后面的数字到底是什么
杨甩甩
博客等级 码龄9年 7粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值