PHP基础07-字符串

字符串

字符串定义语法

  1. 单引号字符串
  2. 双引号字符串


    比较适合定义那些比较短(不超过一行)或者没有结构要求的字符串,
    如果有结构要求或者内容超过一行,可以使用以下两种结构定义
  3. nowdoc字符串:没有单引号的单引号字符串
    $str=<<<’边界符’
    字符串内容
    边界符
  4. heredoc字符串:没有双引号的双引号字符串
    $str=<<<边界符
    字符串内容
    边界符



结构不会发生变化

结构化定义字符串变量的规则

  • 结构化定义字符串对应的边界符有条件:
  1. 上边界符后面不能有任何内容(包括注释,空格)
  2. 下边界符必须顶格:最左边
  3. 下边界符同样后面只能跟分号,不能跟任何内容
  • 结构化定义字符串的内部(边界符之间)的所有内容都是字符串本身

字符串转义

转义的含义:在计算机通用协议中,有一些特定的方式定义的字母,系统会特定处理;通常这种方式都是使用反斜杠+字母(单词)的特性
\r \n:回车换行
PHP在识别转义字符的时候也是使用同样的模式:反斜杠+字母
在PHP中系统常用的转义符号
\’ 在单引号字符串中显示单引号
\”在双引号字符串中显示双引号
\r代表回车(理论上回到当前行的首位置)
\n代表新一行 (\r与\n配合就可以表示换行)
\t 类似TAB键,输出四个空格
\$ 在PHP中使用$符号作为变量符号,因此需要特定识别
单引号与双引号区别:

  1. 单引号中能识别\‘(因为在单引号中出现没有转义的’会有误解,发生错误),而双引号仅不能识别\’(因为在双引号中‘能正确使用不会有误解)

    因为单引号中$没有变量意义,所以/$ 原样输出

    因为双引号中$有变量意义,所以能识别/$转义成没有意义的$输出


  2. 双引号中因为能够识别$符号,所以双引号中可以解析变量,而单引号不可以。(故)

双引号中变量识别的规则

  1. 变量本身能与后面的内容区分:应该保证变量的独立性,不要让系统难以区分,给变量加上一组大括号
  2. 使用变量专业标识符(区分)

字符串转义

字符串长度问题

  1. 基本函数strlen():得到字符串的长度(字节为单位)
  2. 多字节字符串的长度问题:包含中文的长度
  3. 多字节字符串扩展模块:mbstring扩展(mb:Multi Byte)
    首先需要加载PHP的mbstring扩展

可以使用mb扩展带来很多函数
mb_string扩展针对的是一些关于字符统计


strlen()只是针对标准交换码ASCII,mbstring针对不同的字符集

字符串相关函数

转化函数:implode(),explode(),str_split

implode(连接方式,数组)将数组中的元素按照某个规则连接成一个字符串
explode(分割字符,目标字符串)将字符串按照某个格式进行分割,变成数组
str_split(字符串,字符长度):按照指定长度拆分字符串得到数组

截取函数 trim(),ltrim(),rtrim()

trim(str,【去除的内容】)本身默认去除两边的空格(中间不行),但是也可以指定要去除的内容,是按指定的内容循环去除两边的内容,碰到一个不是目标字符为止
ltrim() 去除左边的 rtrim()去除右边的

截取函数

substr(字符串,起始位置从0开始,【长度】):指定位置开始截取字符串,可以截取指定长度(不指定表示到最后)
strstr(字符串,匹配字符):从指定字符开始截取,到最后(strrchr() - 查找指定字符在字符串中的最后一次出现,可以用来取文件后缀名:利用.)

该函数区分大小写。如果想要不区分大小写,请使用 stristr()

大小转换函数

strtolower — 将字符串转化为小写
strtoupper 将字符串转化为大写
Ucfirst()首字母大写

ucwords() - 将字符串中每个单词的首字母转换为大写

查找函数

strpos(字符串,指定字符,起始位置)查找首次出现的位置

  • 起始位置如果是负数,搜索会从字符串结尾指定字符数开始。
  • 同时注意字符串位置是从0开始,而不是从1开始的。 如果没找到 needle,将返回 FALSE。

替换函数

str_replace(匹配目标,替换的内容,字符串):将目标字符串中部分字符串进行替换
str_ireplace — str_replace() 的忽略大小写版本

格式化函数

printf() / sprintf(输出字符串有占位符,若干占位符)

其他

str_repeat(字符串,次数)
重复一个字符串(必须大于等于 0。如果 multiplier 被设置为 0,函数返回空字符串)
str_shuffle()随机打乱字符串