编程之路之php字符串函数详解【文末有惊喜】

一、什么是字符串函数?

简而言之就是php针对字符串一些操作函数。

二、使用[]来输出字符串的字符

在PHP中,字符串是字符的集合。一个字符占用一个字节的存储空间。

字符是由字节组成的,但是汉字是多字节字符串。

字节是最小的存储单位

普通的字母,我们还可以使用[]来输出

因为我们把字符串看成是由一个一个的字符组成的。

但多字节字符串则有问题

编程之路之php字符串函数详解【文末有惊喜】_第1张图片

如果我们连续输出3 2上字节,汉字就可以出来的

编程之路之php字符串函数详解【文末有惊喜】_第2张图片

为什么要3个字节?

编程之路之php字符串函数详解【文末有惊喜】_第3张图片

因为文件是用utf-8编码保存的,所以里面的汉字也是utf-8编码的

一个utf-8编码汉字,占用3个字节的存储空间

而gbk编码的汉字,占用2个字节的存储空间

使用[]输出字符的方式,和编码格式有关

三、常用函数

Strlen() 获取字符串长度,是按字节来计算的

PHP中,它是把所有的字符串按字节来衡量的,因此汉字和编码有关

编程之路之php字符串函数详解【文末有惊喜】_第4张图片

Md5() 得到输入字符串的一个散列值,是一个固定32位长度的字符串

得到的值是不可逆的,通常用于网站保存用户的密码

简单的对字符串md5不一定安全,如123456它md5后的结果就是一个

怎么能做到更安全?

在给用户的密码串md5时,增加一个salt随机字符串(这个串也要记录在数据表中)

Md5(Md5($password) . $salt)

Str_shuffle()打乱一个字符串

 

注意:不要对含有多字节字符串的字符串进行乱序操作,没有意义

Strrev()反转字符串

注意:同样不要对有汉字的字符进行此操作

 

 

Srt_pad()使用另一个字符串填充一个字符串为指定长度

第一个参数表示填充后字符串的长度

第二个参数表示使用什么字符来填充,默认是使用空格

第三个参数,在哪边填充,默认是在右边

编程之路之php字符串函数详解【文末有惊喜】_第5张图片

第三个参数可以是STR_PAD_LEFT左边  STR_PAD_RIGHT右边  STR_APD_BOTH两边

Str_repeat()重复一个字符串

编程之路之php字符串函数详解【文末有惊喜】_第6张图片

去除字符

Trim() 去除两端的字符

Ltrim() 去除左边的字符

Rtrim()去除右边的字符

默认情况下,是去除空格及几个特殊的字符

编程之路之php字符串函数详解【文末有惊喜】_第7张图片

编程之路之php字符串函数详解【文末有惊喜】_第8张图片

在网站接收表单数据时,对于字符串类型的参数经常要使用trim去除两端的空格

此函数还可以去除给出的字符列表中的字符

第二个参数是字符的列表,不是说去除这个字符串!

大小写转换

  1. strtolower — 将字符串转化为小写
  2. strtoupper — 将字符串转化为大写
  3. lcfirst — 使一个字符串的第一个字符小写
  4. ucfirst — 将字符串的首字母转换为大写
  5. ucwords — 将字符串中每个单词的首字母转换为大写

 

英文情况下,空格隔开的被认为是单词

有一个面试题:把用下划线命名的变量名变成大驼峰法方式

student_age 变成 StudentAge

编程之路之php字符串函数详解【文末有惊喜】_第9张图片

字符串转化数组

Str_split()把字符串转化成数组

把字符串按指定的长度拆分到数组元素

编程之路之php字符串函数详解【文末有惊喜】_第10张图片

转义字符串

  1. addslashes — 使用反斜线引用字符串
  2. stripslashes — 反引用一个引用字符串

这两个函数的作用,是为了把字符串的需要转义的字符进行转义,主要是为了防止如SQL注入的问题

编程之路之php字符串函数详解【文末有惊喜】_第11张图片

Addslashes()这个函数就对字符串中的引号进行转义,加了转义符就不会有问题了

编程之路之php字符串函数详解【文末有惊喜】_第12张图片

上面是一个网站的安全知识

HTML相关

  1. htmlspecialchars — Convert special characters to HTML entities
  2. htmlspecialchars_decode — 将特殊的 HTML 实体转换回普通字符
  3. strip_tags — 从字符串中去除 HTML 和 PHP 标记
  4. nl2br — 在字符串所有新行之前插入 HTML 换行标记
  5. wordwrap — 打断字符串为指定数量的字串

htmlspecialchars()

编程之路之php字符串函数详解【文末有惊喜】_第13张图片

使用htmlspecialchars转义的字符叫实体字符

它有两种格式:

&名;

&#数字;

 

Strip_tags()去除掉字符串的html标记

在你做网页采集时,内容有很多HTML标签,使用这个函数后可以去除掉

字符串查找和替换

  1. substr — 返回字符串的子串

编程之路之php字符串函数详解【文末有惊喜】_第14张图片

第三个参数字符长度可以为负数,代表从后向前几个字符将被忽略、

第二个参数也可以为负,为负时就从后向前数几个字符开始截取

 

  1. str_replace — 子字符串替换

 

  1. strpos — 查找字符串首次出现的位置

注意一下,如果查找的字符串出现在最前的位置,则返回0

要用全等来判断是否找到子串

 

  1. strrpos — 计算指定字符串在目标字符串中最后一次出现的位置
  2. strstr — 查找字符串的首次出现
  3. strrchr — 查找指定字符在字符串中的最后一次出现

strstr()它有一个别名strchr(),查找字符串首次出现位置

面试题:取文件的后缀

Config.inc.php

编程之路之php字符串函数详解【文末有惊喜】_第15张图片

多字节字符串函数

需要mbstring支持,在php.ini中需要打开注释

此类函数可以对多字节字符串进行处理

Mb_strlen()

Mb_substr()

Mb_strpos()

编程之路之php字符串函数详解【文末有惊喜】_第16张图片

我是小咖

绝密心法:上面所讲皆可以在php官方手册上查到。

编程之路之php字符串函数详解【文末有惊喜】_第17张图片

发个邀请:
如果你正好想学习php,可以与我一起交流,我的VX:feilueze333。下面资料免费赠送。

编程之路之php字符串函数详解【文末有惊喜】_第18张图片

 

 

 

 

 

 

你可能感兴趣的:(php进阶之路)