一、什么是字符串函数?
简而言之就是php针对字符串一些操作函数。
二、使用[]来输出字符串的字符
在PHP中,字符串是字符的集合。一个字符占用一个字节的存储空间。
字符是由字节组成的,但是汉字是多字节字符串。
字节是最小的存储单位
普通的字母,我们还可以使用[]来输出
因为我们把字符串看成是由一个一个的字符组成的。
但多字节字符串则有问题
如果我们连续输出3 2上字节,汉字就可以出来的
为什么要3个字节?
因为文件是用utf-8编码保存的,所以里面的汉字也是utf-8编码的
一个utf-8编码汉字,占用3个字节的存储空间
而gbk编码的汉字,占用2个字节的存储空间
使用[]输出字符的方式,和编码格式有关
三、常用函数
Strlen() 获取字符串长度,是按字节来计算的
在PHP中,它是把所有的字符串按字节来衡量的,因此汉字和编码有关
Md5() 得到输入字符串的一个散列值,是一个固定32位长度的字符串
得到的值是不可逆的,通常用于网站保存用户的密码
简单的对字符串md5不一定安全,如123456它md5后的结果就是一个
怎么能做到更安全?
在给用户的密码串md5时,增加一个salt随机字符串(这个串也要记录在数据表中)
Md5(Md5($password) . $salt)
Str_shuffle()打乱一个字符串
注意:不要对含有多字节字符串的字符串进行乱序操作,没有意义
Strrev()反转字符串
注意:同样不要对有汉字的字符进行此操作
Srt_pad()使用另一个字符串填充一个字符串为指定长度
第一个参数表示填充后字符串的长度
第二个参数表示使用什么字符来填充,默认是使用空格
第三个参数,在哪边填充,默认是在右边
第三个参数可以是STR_PAD_LEFT左边 STR_PAD_RIGHT右边 STR_APD_BOTH两边
Str_repeat()重复一个字符串
去除字符
Trim() 去除两端的字符
Ltrim() 去除左边的字符
Rtrim()去除右边的字符
默认情况下,是去除空格及几个特殊的字符
在网站接收表单数据时,对于字符串类型的参数经常要使用trim去除两端的空格
此函数还可以去除给出的字符列表中的字符
第二个参数是字符的列表,不是说去除这个字符串!
大小写转换
- strtolower — 将字符串转化为小写
- strtoupper — 将字符串转化为大写
- lcfirst — 使一个字符串的第一个字符小写
- ucfirst — 将字符串的首字母转换为大写
- ucwords — 将字符串中每个单词的首字母转换为大写
英文情况下,空格隔开的被认为是单词
有一个面试题:把用下划线命名的变量名变成大驼峰法方式
student_age 变成 StudentAge
字符串转化数组
Str_split()把字符串转化成数组
把字符串按指定的长度拆分到数组元素
转义字符串
- addslashes — 使用反斜线引用字符串
- stripslashes — 反引用一个引用字符串
这两个函数的作用,是为了把字符串的需要转义的字符进行转义,主要是为了防止如SQL注入的问题
Addslashes()这个函数就对字符串中的引号进行转义,加了转义符就不会有问题了
上面是一个网站的安全知识
HTML相关
- htmlspecialchars — Convert special characters to HTML entities
- htmlspecialchars_decode — 将特殊的 HTML 实体转换回普通字符
- strip_tags — 从字符串中去除 HTML 和 PHP 标记
- nl2br — 在字符串所有新行之前插入 HTML 换行标记
- wordwrap — 打断字符串为指定数量的字串
htmlspecialchars()
使用htmlspecialchars转义的字符叫实体字符
它有两种格式:
&名;
&#数字;
Strip_tags()去除掉字符串的html标记
在你做网页采集时,内容有很多HTML标签,使用这个函数后可以去除掉
字符串查找和替换
- substr — 返回字符串的子串
第三个参数字符长度可以为负数,代表从后向前几个字符将被忽略、
第二个参数也可以为负,为负时就从后向前数几个字符开始截取
- str_replace — 子字符串替换
- strpos — 查找字符串首次出现的位置
注意一下,如果查找的字符串出现在最前的位置,则返回0
要用全等来判断是否找到子串
- strrpos — 计算指定字符串在目标字符串中最后一次出现的位置
- strstr — 查找字符串的首次出现
- strrchr — 查找指定字符在字符串中的最后一次出现
strstr()它有一个别名strchr(),查找字符串首次出现位置
面试题:取文件的后缀
Config.inc.php
多字节字符串函数
需要mbstring支持,在php.ini中需要打开注释
此类函数可以对多字节字符串进行处理
Mb_strlen()
Mb_substr()
Mb_strpos()
我是小咖
绝密心法:上面所讲皆可以在php官方手册上查到。
发个邀请:
如果你正好想学习php,可以与我一起交流,我的VX:feilueze333。下面资料免费赠送。