欢迎来到酷客淘,为站长提供交易担保服务 访问移动版
站长交易首选担保平台!
酷客淘

CI 中的函数库的中20函数都是干什么用的

日期: 2020-03-26 08:26:22 人气: -

CI 中的函数库的中有20个函数,想看下CI的源代码,理解这几个函数是很重要的,就查看一下,记下笔记。



(1) is_php($version)  |  如果php的运行版本比如当前的版本高返回 true, 否则返回 false

is_php 函数使用了一个静态变量 $_is_php ,该变量是一个数组。运行的时候,如果执行is_php(5.4), 变量 $_is_php 就会产生一个元素$is_php['5.4'], 如果当前的php版本高于等于5.4,这个元素的值是true。因为是静态变量,所以这个函数运行过后,变量并不消失。下次再进行php版本是否高于5.4的时候,就可以直接输出结果。


(2)is_really_writable($file) | 是否有写入的权限

php中的 函数 is_writable ,返回的结果并不总是对的。这些情况出现的原因是在window系统或者启用了safe_mode 。如果是这两种情况就真实的随机生成一个文件。用来测试是否有写的权限。


(3)&load_class($class, $directory = 'libraries', $param = NULL)

这个函数主要做了三件事情


加载一个类,并返回实例化的类。加载的顺序 APPPATH, BASEPATH

失败返回503, 成功返回该类的实例,并存储在这个函数中的静态变量 $_classes(数组类型) 中

执行 is_loaded ($class)

(4) &is_loaded($class = '')  | 返回全部已经实例化的类

如果一个类实例化是,是在 load_class 函数执行的期间实例化的的。


(5) &get_config (Array $replace = array()) | 获取配置或者更新配置

函数 get_config 中定义了静态变量 $config , 首先加载的变量是从文件  APPPATH.'config/config.php' 中获取的, 这个配置文件返回一个数组。 之后加载环境配置,如果文件(APPPATH.'config/'.ENVIRONMENT.'/config.php')存在 。最后 是优先级最高的$replace 。可以对已经存在的配置文件替换,或者新增。最后返回全部的配置信息。


(6) config_item($item) | 获取一个具体的配置项

具体的实现通过 ,函数内的静态变量 ,获取配置信息 $_config[0] =& get_config();  因为是引用的关系,所以通过 get_config 设置的新的配置信息,也会在 config_item 中同步获到。这是使用静态变量 $_config[0] , 而不是 $_config 是因为


// references cannot be directly assigned to static variables, so we use an array


(7) &get_mimes | 获取mine类型

文件的mine类型是在APPPATH.'config/mimes.php'中的。存储在 静态变量 static $_mimes, 最后返回所有的mine信息。


(8) is_https() | 判断是不是 https

通过 $_SERVER['HTTPS'] , $_SERVER['HTTP_X_FORWARDED_PROTO'], $_SERVER['HTTP_FRONT_END_HTTPS'] 来实现


(9) is_cli() | 判断是不是 cli 模式

return (PHP_SAPI === 'cli' OR defined('STDIN'))


(10) show_error($message, $status_code = 500, $heading = 'An Error Was Encountered')

显示错误,最终通过类 Exceptions, 实现,输出 $_error->show_error


(11) show_404($page = '', $log_error = TRUE)

显示错误,最终通过类 Exceptions, 实现,输出 $_error->show_404


(12) log_message($level, $message)

输出错误信息,最终通过 Log 类实现,


$_log[0]->write_log($level, $message);


(13) set_status_header($code = 200, $text = '')

如果是命令行模式,直接结束。最终输出


> header($server_protocol.' '.$code.' '.$text, TRUE, $code);


(14) _error_handler($severity, $message, $filepath, $line)

(15) _exception_handler($exception)

以上两个接管默认的php处理。


(16) _shutdown_handler()

php运行结束后,执行的什么,通过这个完成


(17) remove_invisible_characters($str, $url_encoded = TRUE)

移除部分字符


(18) html_escape($var, $double_encode = TRUE)

$var 转换是html实体,数组也可以执行。


(19) remove_invisible_characters($str, $url_encoded = TRUE)

(20) remove_invisible_characters($str, $url_encoded = TRUE)CI 中的函数库的中有20个函数,想看下CI的源代码,理解这几个函数是很重要的,就查看一下,记下笔记。



(1) is_php($version)  |  如果php的运行版本比如当前的版本高返回 true, 否则返回 false

is_php 函数使用了一个静态变量 $_is_php ,该变量是一个数组。运行的时候,如果执行is_php(5.4), 变量 $_is_php 就会产生一个元素$is_php['5.4'], 如果当前的php版本高于等于5.4,这个元素的值是true。因为是静态变量,所以这个函数运行过后,变量并不消失。下次再进行php版本是否高于5.4的时候,就可以直接输出结果。


(2)is_really_writable($file) | 是否有写入的权限

php中的 函数 is_writable ,返回的结果并不总是对的。这些情况出现的原因是在window系统或者启用了safe_mode 。如果是这两种情况就真实的随机生成一个文件。用来测试是否有写的权限。


(3)&load_class($class, $directory = 'libraries', $param = NULL)

这个函数主要做了三件事情


加载一个类,并返回实例化的类。加载的顺序 APPPATH, BASEPATH

失败返回503, 成功返回该类的实例,并存储在这个函数中的静态变量 $_classes(数组类型) 中

执行 is_loaded ($class)

(4) &is_loaded($class = '')  | 返回全部已经实例化的类

如果一个类实例化是,是在 load_class 函数执行的期间实例化的的。


(5) &get_config (Array $replace = array()) | 获取配置或者更新配置

函数 get_config 中定义了静态变量 $config , 首先加载的变量是从文件  APPPATH.'config/config.php' 中获取的, 这个配置文件返回一个数组。 之后加载环境配置,如果文件(APPPATH.'config/'.ENVIRONMENT.'/config.php')存在 。最后 是优先级最高的$replace 。可以对已经存在的配置文件替换,或者新增。最后返回全部的配置信息。


(6) config_item($item) | 获取一个具体的配置项

具体的实现通过 ,函数内的静态变量 ,获取配置信息 $_config[0] =& get_config();  因为是引用的关系,所以通过 get_config 设置的新的配置信息,也会在 config_item 中同步获到。这是使用静态变量 $_config[0] , 而不是 $_config 是因为


// references cannot be directly assigned to static variables, so we use an array


(7) &get_mimes | 获取mine类型

文件的mine类型是在APPPATH.'config/mimes.php'中的。存储在 静态变量 static $_mimes, 最后返回所有的mine信息。


(8) is_https() | 判断是不是 https

通过 $_SERVER['HTTPS'] , $_SERVER['HTTP_X_FORWARDED_PROTO'], $_SERVER['HTTP_FRONT_END_HTTPS'] 来实现


(9) is_cli() | 判断是不是 cli 模式

return (PHP_SAPI === 'cli' OR defined('STDIN'))


(10) show_error($message, $status_code = 500, $heading = 'An Error Was Encountered')

显示错误,最终通过类 Exceptions, 实现,输出 $_error->show_error


(11) show_404($page = '', $log_error = TRUE)

显示错误,最终通过类 Exceptions, 实现,输出 $_error->show_404


(12) log_message($level, $message)

输出错误信息,最终通过 Log 类实现,


$_log[0]->write_log($level, $message);


(13) set_status_header($code = 200, $text = '')

如果是命令行模式,直接结束。最终输出


> header($server_protocol.' '.$code.' '.$text, TRUE, $code);


(14) _error_handler($severity, $message, $filepath, $line)

(15) _exception_handler($exception)

以上两个接管默认的php处理。


(16) _shutdown_handler()

php运行结束后,执行的什么,通过这个完成


(17) remove_invisible_characters($str, $url_encoded = TRUE)

移除部分字符


(18) html_escape($var, $double_encode = TRUE)

$var 转换是html实体,数组也可以执行。


(19) remove_invisible_characters($str, $url_encoded = TRUE)

(20) remove_invisible_characters($str, $url_encoded = TRUE)