热门IT资讯网

PHP字符串

发表于:2024-11-25 作者:热门IT资讯网编辑
编辑最后更新 2024年11月25日,1 PHP字符串基础知识定义:字符结合,在C语言中类似字符数组的概念。表达方式:1)单引号:不解析变量2)双引号解析字符 \n \r \t \v \e \f \\ \$ \"\[0-7]{1,3} 八

1 PHP字符串基础知识

定义:字符结合,在C语言中类似字符数组的概念。

表达方式:

1)单引号:不解析变量

2)双引号

解析字符 \n \r \t \v \e \f \\ \$ \"

\[0-7]{1,3} 八进制方式表达的字符

\x[0-9a-Fa-f]{1,2} 十六进制方式表达的字符

3)heredoc

1:标识符的名称和变量名的要求一样.

2:heredoc的标识符,一定是独占一行,而且前面没有任何其他字符

3:heredoc对文本的处理,和 双引号一样,即\r\n\t,变量,等,能解析出来.

4)noewdoc

写法和heredoc一样,但是效果和单引号一样,不转义\n \r \t 变量等。

2 PHP字符串内部存储方式

struct

{

char *val; 字符指针

int len; int 长度 当前字符串的长度

}str;

1.c语言的字符指针 即字符数组 ,所以可以通过[]或{}来访问某一个字符。

2.字符串长度可以达到2G内存。

3.常见函数都是单字节处理方式

4.二进制安全的。原因:结构体len表示结构体长度。比如c语言中字符串是指连续的内存空间,以'\0'结尾,所以当字符串中包含'\0'的时候,会截断字符串。

3 串行化字符串

方法:

1.函数serialize().

2json_encode().

3.var_export($item,true);

serialize不仅仅可以转化数组还可以转换对象,效率上json_encode高效

4 字符编码

字符集(Charset):是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。

字符编码(Character Encoding):二进制与字符的映射关系,就是将字符转换为计算机可以接受的数 字代码。就是以二进制的数字来对应字符集的字符。

常见字符编码:

ASCII 美国

字符集:包括控制字符(回车 退格);可显示字符(英文大小写字符、阿拉伯数字和西文符号) 编码:7位表示一个字符 共计(2的7次方)128个字符。

ISO-8859-1(latin1) 西欧国家

Big5 台湾

GB2312 中国 6763个汉字 和非汉字682个 2个字节表示 Gbk 18030个汉字

Unicode 字符集 (统一码、万国码、单一码、标准万国码)是业界的一种标准,它可以使电脑得以体现世界上数十种文字的系统

5 Utf-8和Gbk编码原理

UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码(定长码),也是一种前缀码。它可以用来表示Unicode标准中的任何字符,且其编码中的第一个字节仍与ASCII兼容,这使得原来处理ASCII字符的软件无须或只须做少部份修改,即可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。互联网工程工作小组(IETF)要求所有互联网协议都必须支持UTF-8编码。

UTF-8使用一至四个字节为每个字符编码:

1.128个US-ASCII字符只需一个字节编码(Unicode范围由U+0000至U+007F)。

2.带有附加符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文及它拿字母则需要二个字节编码(Unicode范围由U+0080至U+07FF)。

3.其他基本多文种平面(BMP)中的字符(这包含了大部分常用字)使用三个字节编码。

4.其他极少使用的Unicode辅助平面的字符使用四字节编码。


6 :字符串特性

1.可以使用大括号{}来使用;

2.用超出字符串长度的下标写入将会拉长字符串并且以空格填充。

3.非整数类型下标会被转成整数,非法下标类型会产生一个E_NOTICE的错误。


0