php优秀框架codeigniter学习系列——CI_Utf8类
CI_Utf8类用来对Utf8编码环境提供支持。(Provides support for UTF-8 environments)。
从构造函数看,只有当开启了PCRE模式,加载了iconv或者mbstring扩展,配置中定义了该应用使用的是utf8编码的时候,才设置UTF8_ENABLED为TRUE。(这里为什么不用一个类的成员变量来定义呢?从搜索该关键词在框架中使用结果来看,多为判断直接通过该全局变量判断,省去了加载该类的操作,方便使用。)
PCRE :PERL兼容正则表达式函数(perl compatible regular expression)。大概的介绍可以看看:PEAR和PECL的区别及PCRE和POSIX的区别。都是首字母缩写,中国人看着的确头晕。详细的介绍还是去官网看文档吧。
各函数解释:
is_ascii($str)
判断一个字符串是否是完全的asc字符。原理如下:
1)在字符编码方面,ASCII码为标准符号、数字、英文等进行了保留,取值范围是0~127,还有一部分作为扩展ASCII码128~255;
2)当操作系统采用非ASCII编码时(比如汉字编码),一般用扩展ASCII码来进行,约定用128~255范围的编码连续2~3甚至4个来进行汉字编码,(比如国标用连续两个128~255的编码表示1个汉字,分别是区码和位码的编码;UTF-8可以用3个连续的数来表示一个汉字),具体编码规则要看具体定义,一般不相同的。
3)因此,在处理字符串时,如果是有符号字符串,遇到小于0的字符,会结合后面紧跟的字符来组成一个汉字,大于0的为标准西文字符;如果是无符号的,则可以判断是否大于127。
clean_string($str)
保证utf8字符串中只有UTF8字符。
convert_to_utf8($str, $encoding)
将一个其他字符编码的字符串转换为utf8编码的字符串。注意到,作者在使用转换函数的时候,首选的都是mbstring扩展中的mb_convert_encoding函数。
总结,没有了,这个类的方法看似很少,也没有成员变量。所以该类的作用只是简单的提供一些utf8环境的判断,字符串转换和字符串清理的功能。
php优秀框架codeigniter学习系列——CI_Utf8类的更多相关文章
- php优秀框架codeigniter学习系列——CI_Security类学习
这篇文章主要介绍CI核心框架工具类CI_Security. 安全类包含了一些方法,用于安全的处理输入数据,帮助你创建一个安全的应用.以下选取类中的重点方法进行说明. __construct() 在构造 ...
- php优秀框架codeigniter学习系列——CI_Router类学习
这篇文章主要介绍CI核心框架工具类CI_Router. 如果说CI_URI类是用来解析URI,那么CI_Router类就应该是根据解析出来的URI来决定究竟访问哪一个文件和哪一个function. 详 ...
- php优秀框架codeigniter学习系列——CI_URI类学习
这篇文章主要介绍CI核心框架工具类CI_URI. 该类主要用来解析uri和决定路由的.关于URI和URL的关系请参考这位朋友的文章.简单来说URI是唯一定位的资源,URL是唯一资源的一个网络可能访问路 ...
- php优秀框架codeigniter学习系列——CI_Loader类分析
这是一个加载视图和文件的类. __construct() 设置视图文件的路径,和获取输出缓冲级别. initialize() 该方法只会被CI_Controller调用一次,会调用 $this-> ...
- php优秀框架codeigniter学习系列——CI_Lang类学习
这篇文章主要介绍CI核心框架工具类CI_Lang. 根据CI文档自己的定义,该类用来: 提供相关的函数,用于检索语言文件和文本行,以便国际化. 以下选取类中的重点方法进行说明. __construct ...
- php优秀框架codeigniter学习系列——CI_Input类学习
这篇文章主要介绍CI核心框架工具类CI_Input. 根据CI文档自己的定义,该类用来: 提前处理全局变量,以保证安全; 提供一些帮助函数用来处理输入数据. 以下选取类中的重点方法进行说明. __co ...
- php优秀框架codeigniter学习系列——CI_Output类的学习
这篇文章主要介绍CI核心框架工具类CI_Output. 根据CI文档自己的定义,这个类主要就是生成返回的页面给浏览器.以下选取类中的重点方法进行说明. __construct() 在构造函数中,主要确 ...
- php优秀框架codeigniter学习系列——CodeIgniter.php概览
CodeIgniter.php是CI框架的核心文件.它在前端控制器index.php之后运行,加载各类基础组件,执行请求.文件执行完成后,这次请求也就结束了.所以,该文只能对CodeIgniter.p ...
- php优秀框架codeigniter学习系列——hooks
这篇文章学习CI框架的钩子特性. hooks是CI框架提供的一种机制,允许你在程序框架运行流程的某个阶段执行你自己的一些代码.比如系统运行前,CI_Controller调用前,系统运行结束后等特定的时 ...
随机推荐
- apache2反向代理
1.安装 Apache2 sudo apt-get install apache2 2.重启服务器 sudo /etc/init.d/apache2 restart 3.虚拟主机配置 启用这几个模块 ...
- 【Oracle】【6】去掉字符串最后一个特殊字符
--去除字符串末尾的省字,若无省字则无变化 SELECT DISTINCT TRIM('省' FROM PROVINCE) PROVINCE FROM ADDRESS 参考博客: 1,使用oracle ...
- hadoopMR自定义输入格式
输入格式 1.输入分片与记录 2.文件输入 3.文本输入 4.二进制输入 5.多文件输入 6.数据库格式输入 详细的介绍:https://blog.csdn.net/py_123456/ar ...
- 常用的jquery遍历函数
1.Jquery遍历祖先 1).parent() 方法返回被选元素的直接父元素. 2).parents() 方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (<html>) ...
- leetcode-algorithms-33 Search in Rotated Sorted Array
leetcode-algorithms-33 Search in Rotated Sorted Array Suppose an array sorted in ascending order is ...
- 安卓——AppTheme
<?xml version="1.0" encoding="utf-8"?> <resources> <style name=&q ...
- MongoDB文档的基本操作
1. MongoDB的安装方法 (1)下载MongoDB 相应的版本: (2)设置数据文件和日志文件的存放目录: (3)启动MongoDB服务: (4)将MongoDB作为服务启动. 2. Mongo ...
- Jmeter4.0----录制脚本
1.前言 Jmeter录制脚本有两种方式.1.通过第三方工具录制比如:Badboy,然后转化为jmeter可用的脚本:2.使用jmeter本身自带的录制脚本功能. 对于测试小白来说可用先使用jmete ...
- Vue + webpack 项目配置化、接口请求统一管理
准备工作 需求由来: 当项目越来越大的时候提高项目运行编译速度.压缩代码体积.项目维护.bug修复......等等成为不得不考虑而且不得不做的问题. 又或者后面其他同事接手你的模块,或者改你的bug ...
- RocketMQ安装教程
1.下载 http://mirror.bit.edu.cn/apache/rocketmq/ 2.安装 .tar.gz cd alibaba-rocketmq/bin chmod u+x * 3.配置 ...