字符串定义语法
- 单引号字符串:使用单引号包裹
- 双引号字符串:使用双引号包裹
<?php
//php字符串:定义
//引号定义
$str1 = 'hello';
$str2 = 'hello';
var_dump($str1,$str2);
引号方式:比较适合定义那些你较短(不超过一行),或者没有结构要求的字符串;如果有结构要求,或者内容超过一行,可以使用以下两种结构定义。
- nowdoc 字符串:没有单引号的字符串
$str = <<< '边界符';
字符串内容
边界符;
//结构化定义
//herdoc结构
$str3 = <<<EOD
hello
EOD;
- heredoc 字符串:没有双引号的字符串
$str = <<< 边界符;
字符串内容
边界符;
//nowdoc结构
$str4 = <<<EOD
hello
EOD;
herdeoc和nowdoc比引号还是要区别多一些
字符串的转义
转义的含义:在计算机通用的协议中,有一些特定的方式定义的字母,系统会特定处理:通常这种方式都是使用反斜杠+字母(单词)的特性;
\r\n:回车换行
php在识别转义字符的时候也是使用同样的模式:反斜杠+字母;
在php中系统常用的转义符号:
# \';在单引号字符串中显示单引号;
# \":在双引号字符串中显示双引号;
# \r:代表回车(理论上是回到当前行的位置);
# \n:代表新一行;
# \t:类似tab键,输出4个空格;
# \$:在php中使用$符号作为变量符号,因此需要特定识别
//定义字符串识别转义符号
$str1 = 'abc\r\ndef\t\'\"\$fg';
$str2 = "abc\r\ndef\t\'\"\$fg";
var_dump($str1,$str2);
单引号与双引号的区别
1、其中单引号能够识别\’
,而双引号中就不能识别\'
2、双引号中因为能够识别$符号,所以双引号可以解析变量,而单引号不可以
双引号中变量是别的规则:
1)变量本身系统能够与后面的内容区分:应该保证变量的独立性,不要让系统难以区分
2)使用变量专业标识符(区分),给变量加上一组大括号
结构化定义字符串变量的规则
1、结构化丁义字符串对应的边界符有条件;
1.1、上边界符后面不能跟任何内容
1.2、下边界符必须定格:最左边
1.3、下边界符同样后面只能跟分号,不能跟任何条件
2.结构化定义字符串的内部(边界符之间)的所有内容都是字符串本身
字符串长度
1)基本函数strlen():得到字符串的长度(字节为单位)
中文在utf-8下占用8个字符长度
2)多字节字符串的长度问题:包含中文的长度3)多字节字符串扩展模块:mbstring扩展(mb:Multi Bytes)
首先需要加载的php的mstring扩展
字符串相关函数
- 转换函数:
implode
,explode
,str_split()
1、implode(连接方式,数组)
:将数组中的元素按照某个规则连接成一个字符串;
2、explode(分割字符,目标字符)
:将字符串按照某个格式进行分割,变成数组====》中国| 北京 | 顺义 ==array('中国','北京','顺义');
3、str_split(字符串,字符串长度)
:按照指定长度拆分字符串得到的数组;
- 截取函数:
trim()
,ltrim()
,rtrim()
1、trim(字符串,[指定字符])
:本身默认是用来除两边的空格(中间不行),但是也可以指定要去除的内容,是按照指定的内容循环取出两边有的内容:直到碰到一个不是目标字符为止;
2、Ltrim()
:去除左边的;
3、rteim()
:去除右边的
- 截取函数:
substr()
,strstr()
1、substr(字符串,起始位置从0开始[长度]
:指定位置开始截取字符串,可以截取指定长度(不指定到最后))
2、strstr(字符串,匹配字符)
:从指定位置开始,截取到最后(可以用来取文件后缀名)
- 大小写转换函数
strtolower()
,strtoupper()
,ucfirst()
1、strtolower()
:全部大写
2、strtoupper()
:全部小写
3、ucfirst()
:首字母大写
- 查找函数:
strpos()
,strrpos()
*
1、strpos()
:判断字符在目标字符串中出现的位置(首次)
2、strrpos()
:判断字符在目标字符串中最后出现的位置
- 替换函数:
str_rplace()
1、str_replace(匹配目标,替换的内容,字符串的本身)
:将目标字符串中的部分字符串进行替换
- 格式化函数:
printf()
,sprintf()
1、printf/sprintf(输出字符串有占位符,顺序占位内容...)
:格式化输出数据
- 其他:
str_repeat()
,str_shuffle()
1、str_repeat():重复某个字符串N次
2、str_shuffle():随机打乱字符串