百搜论坛欢迎您的加入!
adimg adimg
 
昨日:篇  今日:篇   总帖:篇   会员:
博主最大Lv62   
CI 中的函数库的中20函数都是干什么用的     

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)

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

  1. 加载一个类,并返回实例化的类。加载的顺序 APPPATH, BASEPATH
  2. 失败返回503, 成功返回该类的实例,并存储在这个函数中的静态变量 $_classes(数组类型) 中
  3. 执行 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)

 0  已被阅读了550次  楼主 2020-07-06 13:18:28
回复列表

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

联系站长 友链申请桂ICP备19000949号-1     桂ICP备19000949号-1
您的IP:3.225.221.130,2022-11-30 20:52:01,Processed in 0.02243 second(s).
免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任。
Powered by HadSky 7.12.3
已有0次打赏
(0) 分享
分享
取消
免责声明
1、本站资源,均来自网络,版权归原作者,所有资源和文章仅限用于学习和研究目的 。
2、不得用于商业或非法用途,否则,一切责任由该用户承担 !
如果觉得本文还不错请点个赞或者打赏点轻币哦~
拒绝伸手党,拿走请回复,尊重楼主,尊重你我他~

侵权删除请致信 E-Mail:207882320@qq.com