xiaojiang0414

PHP基础知识(五)

PHP字符串

单引号与双引号的区别

字符串是一个标量:单值变量,需要定界符。

根据声明定界符分为:单引号、双引号、Heredoc、Nowdoc

(1)单引号可以声明普通字符串,只能转义单引号和反斜线,不能解析变量

(2)双引号可以声明普通遍历,可以转义全部特殊字符,能解析变量。

(3)Heredoc语言结构和双引号很相似,不同的是Heredoc里面出现的双引号不需要转义就可以输出。

(4)Nowdoc和单引号很相似,不同的是Nowdoc里面的单引号反斜线不需要转义。

从PHP5.3开始Heredoc和Nowdoc还可以初始化局部变量和类属性。

变量解析的两种语法

简单语法$var和复杂语法{$var}

关联数组要用到复杂语法。举个例子:

测试结果:

字符串的增删改查(把字符串看成一个数组)

为了和数组有所区分,用花括号把下标括起来

删除字符串长度没变化,只是视觉的变化。

 

测试结果:

 Heredoc的一些总结

1、换行,空格会保留。

2、因为不需要对引号进行转义,适合输出大段的HTML代码。

3、变量可以自动解析,适合于模板输出。

4、如果Heredoc或Nowdoc与其它字符串拼接,结尾不需要加分号。

测试结果:

 注意:原本分号结尾处改成换行并加上字符串拼接符和拼接的字符串内容,分号结尾。

字符串的一些常见方法

子串处理函数substr()

获取字串的内容。

测试结果:

substr_replace()

替换子串内容。

测试结果:

将子串长度设置为0,实现无删除的插入

测试结果:

设置空字串,实现插入式的删除

测试结果:

在起始位置插入字符

测试结果:

如果最后一个参数没有提供,那么它默认为strlen(string)(字符串的长度),这样会把字符串替换掉。

substr_count()

查询子串出现的次数。

测试结果:

substr_compare()

二进制安全比较字符串(从偏移位置比较指定长度),第三个参数指的是第一个参数的字符串的起始位置。

如果比较等于0则表示相等,小于0,表示第一个子串小于第二个子串,如果大于0,则表示第一个子串大于第二个子串。

测试结果:

字符串检索strpos()

查找字符串首次出现的位置。

有三个参数,第三个参数表示查找的起始位置。

中文使用的是UTF-8编码,一个字占三个字节。

测试结果:

查找中文的时候,应开启多字节安全函数mb_,当前使用的版本是PHP5.4.45,使用多字节函数mb_,记得加上编码,否则用的默认编码是ISO-8859-1。

如果不加上编码,可以使用mb_internal_encoding(\'UTF-8\')进行统一修改。

测试结果:

strstr()

查找字符串第一次出现的位置到结尾的内容,第三个参数默认是false,当开启true的时候表示查找字符串第一次出现的位置的之前的内容。

测试结果:

字符串的填充与替换

str_pad()字符串填充

有四个参数,第一个参数是指定字符串,第二个参数是填充的长度,该长度必须大于指定字符串的长度,如果小于或等于都不会填充,第三个参数是填充的内容,第四个参数是指定填充位置,一共有三个值,默认值是STR_PAD_RIGHT,填充到左边是STR_PAD_LEFT,填充到两边是STR_PAD_BOTH。

测试结果:

字符串重复函数str_repeat()

测试结果:

随机打乱函数str_shuffle()

测试结果:

字符串替换函数str_replace()

可以单个替换也可以逐个替换,常用于Linux系统路径的反斜杠替换,逐个替换要传入的参数是数组。

测试结果:

字符串长度计算

纯英文就用strlen(),有中文就用mb_strlen(),PHP7以上是UTF-8编码

还有一个是mb_strwidth(),它会将所有多字节全部按2字节处理。

测试结果:

字符串分割与组合

explode()

字符串分割,返回的是数组

测试结果:

implode()

字符串拼接,返回的是字符串

测试结果:

字符串类型转换

浏览器默认输出都转成字符串

类型转换有三种:强制转换、永久转换、自动转换

1、强制转换(临时转换)

测试结果:

2、永久转换

使用settype(),返回的是布尔类型,true代表成功。

测试结果:

3、自动转换,与上下文无关。

测试结果:

注意:数字如果不是字符串的前导部分,会自动转成0

字符串的格式化函数

字符串大小写转换strtolower()strtoupper()

测试结果:

字符串转时间戳strtotime()

测试结果:

千位分隔符函数number_format()

举个例子:

测试结果:

ASCII码与整数之间的转换

将整数转为ASCII码用chr(),将ASCII码转为整数用ord()

测试结果:

将字符串的换行符\n转为html的<br/>

测试结果:

编码的转换iconv()

由于header()设置的是utf-8,所以转成GBK会出现乱码。

测试结果:

字符串加密

md5()和sha1(),sha1()计算字符串的散列值。

测试结果:

字符串内容过滤与转码

trim()函数

去除字符串首尾处的空白字符(或者其他字符)

 

查看网页源代码和结果:

过滤html标记strip_tags()

测试结果:

htmlspecialchars()

将特殊字符转为html实体。

html中特殊字符有<、>、&、"主要四个

实体字符有:<:&lt; 、>:&gt; 、&:&amp; 、":&quot;

测试结果:

字符串的序列化与JSON处理

json_encode()将数组或对象转为json

测试结果:

json_decode()将一个json格式的字符串转为PHP对象

测试结果:

字符串序列化

将数据的结构、类型保存到变量或文件中方便传送。

测试结果:

分类:

技术点:

相关文章: