字符串编码原理--PHP数组原理与高级应用

基础知识

1.有几种表达方式(查看手册)
2.单引号和双引号的区别,双引号解析变量、\n,\t等,八进制与十六进制编码

内部存储方式

c语言中怎么表示字符串,结构体存储了字符指针和长度
1.字符串可以用[]和{}访问某个字符
2.字符串长度可以达到2G(内存)
3.常见的函数都是单字节处理方式
4.php字符串是二进制安全的。二进制安全:在C语言中,如果$str = '1235\0sss';\0的位置是被截断的,这种就不是二进制安全的,在PHP中,php字符串的结构体因为有len长度的属性,是不会被截断的,原样输出,所以为二进制安全的。
5.用超出字符串长度的下标写入将会拉长字符串并以空格填充。非整数类型下标会被转换成整数。非法类型下标会产生一个e_notice级别错误

串行化

把其它不方便存储的数据类型array,object等转换为字符串,就叫串行化
json_encode、serialize、var_export常用的串行化函数
json_encode、serialize性能对比json_encode略胜一筹但并不明显。
var_export将数组转换成原样的字符串并打印到屏幕。带第二个参数true则返回值,将内容写入文件的时候常用。将数组存储在文件里,当做文件缓存的形式,是非常有用的

编码

b bit位 二进制最小的信息单位 8b=1B
B byte字节
字符
字符集
字符编码


ASCII(美国信息交换专属编码),基于拉丁字母的一套编码,使用7位表示一个字符,共128个字符
ISO-8859-1 ASCII的扩展码,别名latin1,主要是后来欧洲人使用
美国西欧人民很幸福,其他国家怎么办
BIG5是最开始的时候台湾5家计算机厂商创建的中文编码,也叫大五码
GB2312是由中国国家标准总局发布,共94段*94个元素,也叫区位码6763个汉字
GBK是在GB2312 的基础上添加了许多生僻的汉字
对于其他国家也有自己的编码方式,ISO组织商讨解决方案,UNICODE就出现了,总数超过65535个字符,两个字节表示,后用4个字节表示1个字符
UNICODE是字符集,UTF-8,UTF-16,UTF-32是编码解决方案

UTF-8和GBK编码原理

GBK编码方式

区位码 打开编码源码,可以看到是一块一块的,一块叫做区,其中的第几行几列叫作位,所以叫区位码
国标码 并不是计算机内使用的计算机编码
机内码


UTF编码方式


如何获取一个汉字的拼音
UTF-8编码
UTF的BOM头,用来规范编码在不同机器的显示顺序
如何判断输入的文字是GBK还是UTF-8
编码的总结,UTF-8对程序员是有利的,一些函数比如json_encode只支持UTF-8,GBK更加节约空间

 

php数组原理与高级应用

基础

定义构造数组,array(),[],$arr[0]='22',对象也可以当做数组来用
key,value的定义条件
访问
数组的删除unset
其他类型转换为数组
数组的遍历
数组遍历foreach的原理

数组底层结构

数组的内部存储结构
哈希表的原理
HashTable结构体
bucket结构体
数组的扩容问题
排序的原理

需要关注的知识点

php位运算
php输入流
数组与数据结构

 

posted @ 2018-04-17 15:52  芭菲雨  阅读(209)  评论(0编辑  收藏  举报