继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

PHP字符串

慕田峪是谁我也不认识
关注TA
已关注
手记 271
粉丝 40
获赞 95

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的错误。


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP