1. 字符串类型特点
1)因为PHP是弱类型语言,所以一般其他数据类型的变量也可以被字符串相关函数进行处理。
例如:
Substr:字符串截取函数
Substr(“要处理的字符串”,起始值,截取个数)
如果是整形,因为PHP是弱类型语言,所以会自动类型转换,被转换为字符串类型
2)字符串可以将其视为数组
如下:
需要注意的是,虽然字符串被视为数组,但是它不是真的数组
如下:使用数组相关函数进行处理的时候,并不能得到正确的结果
因为字符串虽然被视为数组,但是并不是真的数组,所以上面的数组函数无效,如果要测量字符串的长度,还是得使用字符串相关函数。
为了区分字符串和数组,可以使用(大括号)花括号“{}”,这样简洁明了
3)如果给字符串里面的某一个值赋值,字符串值会被改变,字符串长度不变
如果是赋值一个字符串给另一个字符串的某一个字符,那么也只会有第一个字符被赋值进去
4)关于单引号和双引号
单引号:不会解析变量
双引号:会解析变量
如果是双引号里面的变量,为了简洁明了,最好用一对花括“{}”弧将变量括起来。
如下:
双引号里面除了可以解析变量,还可以解析数组和对象
2.字符串相关函数
1)字符串输出相关函数
echo(),print(),die(),printf(),sprint()
echo:用于输出一个或者多个字符串,注意echo可以输出多个字符串,中间用逗号分隔
如果有多个参数输出的话,使用逗号的效率比点高
echo严格的来讲,不是函数,事实上它是一个语言结构。
所谓语言结构,就是关键字。语言结构的执行效率要比函数高,因为函数执行的时候最终也会被转换为语言结构。
Print():功能和echo基本一模一样,区别就是print()是一个函数,而echo是一个语言结构,所以print的执行效率没有echo高,还有一点,print()有返回值,成功返回1,失败返回0
Die()
Die()函数就是exit()函数的一个别名函数,功能和exit()是一模一样。如果往该函数里面传递一个字符串,则在退出脚本时会显示该提示信息
Printf(),打印,输出
这个很眼熟,在C语言里面见过,该语句也是直接从C语言直接借鉴过来的。
Sprintf():和printf的功能一模一样,只不过不输出,而是通过返回值的形式将值返回
2)常用的字符串格式化函数
所谓字符串格式化,就是指将字符串格式为你所需要的格式。
去除空格函数
Ltrim():去除左边空格
Rtrim():去除右边空格
Trim():去除两边的空格,注意
该函数在用户提交表单的时候用得最多,比如用户注册账号不小心多按了空格,如果不去除,下一次无论怎样都不能登录。
这套函数不会对原来的字符串进行改变,而是以返回值得形式返回处理结果。
Trim()这套函数可以自己定义要去除哪些字符。例如0..9代表过滤数字,A..Z过滤大写字母 a..z过滤小写字母 点“ . ” 代表就是过滤字符串里面的 点“ . ”
除此之外,trim还支持自定义过滤范围
3)字符串填充函数
Str_pad(要填补的字符串,指定长度,填充字符,方向)
方向默认支持3个:STR_PAD_LEFT,STR_PAD_RIGHT,STR_PAD_BOTH
不会改变原来数组的长度
4)字符串大小写转换
PHP里面提供4中字符串大小写转换函数
Strtoupper():全部转大写
Strtolower():全部转小写
Ucfirst():字符串中的第一个单词的首字母转换为大写uc(upper case) 大小写字母)的简写
Ucwords():每个单词的首字母转换为大写
5)和HTML标签相关的字符串格式化函数
nl2br(字符串名字)函数:
该函数可以将 转换为br,很多编程人员由于以前是写C的,C语言里面 是换行,所以为了迎合他们的习惯,专门有一个这个函数将 转换为br
Htmlspecialchars():将预定义字符(主要就是指HTML标签)转换为HTML实体
< 转换为 <
> 转换为 >
可以让代码直接输出,而不让浏览器解释,用于防止别人提交的html代码攻击。
还有一个strip_tags(要处理的字符串,要保留的标签):直接可以删除字符串里面的HTML标签
strip_tags(要处理的字符串,要保留的标签)
其他相关函数
Strrev():将字符串里面的字符全部翻转
Number_format():标准货币格式函数
Number_format($num,可以选择保留多少位小数)
Number_format($num,可以选择保留多少位小数,小数位的分隔符,整数位的分隔符)
Md5()函数:将一个字符串进行md5加密处理,默认返回一个32位的十六进制字符串
6)字符串比较函数
在PHP里面可以通过(==,<,>)来对字符串进行比较
除了比较运算符用来比较字符串以外,PHP中还提供了一套字符串比较函数用于字符串比较。
Strcmp(str1,str2):和C语言里面是一样
Strcasecmp(str1,str2):忽略字符串大小写进行比较
按照自然排序进行字符串比较
“4” “33”
Strnatcmp()
字符串的分割
正则:
Preg_split(m,n)m代表以什么进行分割的正则表达式,n表示被分割的字符串名
Explode(分隔符,字符串变量名)将字符串分割成数组
Implode():将一个数组合并成一个字符串
Implode(连接符号,数组)