PHP基础02---字符串
字符串类型
定义:
引号方式:
比较适合定义那些比较短(不超过一行)或没有结构要求的字符串。
$s1 = 'abc';
$s2 = "abc";
//单引号与双引号的定义方法一样。
结构化定义:
如果有结构要求,或者内容超过一行,可用下面两种方式
1.nowdoc字符串:没有单引号的单引号字符串
/* $str= <<< '边界符'
字符串内容
边界符;*/
$str1 = <<< 'EOD'
abc
EOD;
//EOD所在位置写什么都行
2.heredoc字符串:没有双引号的双引号字符串
$str= <<< 边界符
字符串内容
边界符;
$str2 = <<< EOD
abc
EOD;
//EOD所在位置后面什么都可
结构化定义字符串的时候,原封不动的保存
但是多余的空格以及换行可能会被替换成一个空格
结构化定义字符串变量的规则:
- 边界符:
1.1 上边界符后面什么内容分都不能有(空格也不行
1.2 下边界符必须顶格
1.3 下边界符同样后面只能跟分号,不能跟任何内容。 - 结构化定义字符串的内部(边界符之间)的所有内容都是字符串本身。
<?php
header('Content-type:text/html;charset=utf-8');
$str3 = 'aaa $s1';
$str4 = <<< EOD
//这是啥
<script>
alert('$str3');//js弹出字符串必须要有引号
</script>
EOD;
echo $str4;
//其中<script>是弹出内容
转义:
在计算机通用协议中,有一些特定方式定义的字母,系统会特定处理:通常这种方式都是使用反斜杠+字母(单词)的特性:
php在识别转义字符的时候,也是使用同样的模式:\ + 字母(单词)
对于\'、\"、不作过多解释。
- \r 代表回车(理论上是回到当前行的位置
- \n 代表新的一行
- \t 类似tab键,输出四个空格。
- \$ 输出$符号。
单引号与双引号的区别:视情况而定(最好用双引号
- 单引号只能够识别:\',但双引号中不能。
<?php
$s1 = '\'';
$s2 = "\'";
/*
输出为
'
\'
*/
- 双引号中因为能识别$符号,所以双引号中可以解析变量
<?php
$a = 'orz';
$s1 = 'abcd $a';
$s2 = "abcd $a";
$s3 = "abcd $ab";//这样会报错,但是还会输出错误前面的部分
echo $s1,'<br/>',$s2;
/*
输出为
abcd $a
abcd orz
*/
双引号中变量识别规则:
<1 变量本身系统能够与后面的内容区分:应该保证变量的独立性,不要让系统难以区分,即不要像\(s3一样写成\)ab;
<2 最好给变量加上{},像这样 \(4 = "abcd {\)a}b";
长度问题:
-
基本函数strlen():得到字符串的长度(字节为单位
注意中文在utf-8字符集下占3个字节。
-
多字节字符串长度问题:包含中文的长度
-
多字节字符串扩展模块:mbstring扩展(mb:Multi Bytes
3.1 首先加载php的mbstring扩展(在php.ini中找mbstring,去掉注释。
3.2 可以使用mb_strlen()(mbstring扩展针对的是一些关于字符统计:strlen只针对ASCII,mb_strlen会针对不同的字符集
字符串函数:
可参照此处
用的时候百度就行(建议看看上面的超连接,看看有啥东西,用的时候能有个印象
支持中文基本都是mb_为前缀,安全截取。
----出处丢失。
1.转换函数:
-
1implode(连接方式,数组):将数组中的元素按照某个规则连接成一个字符串
-
2 explode(分割字符,目标字符串):将字符串按照某个格式分割,变成数组
- 3 str_split(字符串,字符长度):按照规定长度拆分字符串得到数组
2.截取函数:
-
1 trim(字符串[,指定字符]):本身默认是用来出去两边的空字符(中间的不可去除),也可去掉两端指定的字符
-
2 ltrim():用法同trim,就是指定去掉左边的(可以按照lefttrim来理解,没有leftrim这个函数!
-
3 rtrim():用法同trim,指定去掉右边的(可按照righttrim来理解,没有rtrim这个函数!
3.截取函数:
-
1substr(字符串,起始位置[,长度]):从指定位置开始截取字符串,可截取指定的长度(不指定的话就默认到最后;别忘记字符串起始从0开始。
-
2strstr(字符串,匹配字符):从第一个匹配字符开始,截取到最后(可以用来取文件后缀名
4.大小写转换函数:
-
1 strtolower(字符串):全部小写
-
2 strtoupper(字符串):全部大写
-
3 ucfirst(字符串):首字母大写(需要考虑空格,空格的大写还是空格
5.查找函数:
-
1strpos(字符串,字符(串)):判断字符在目标字符串中首次出现的位置(不能判断中文字符(需要转utf-8);注意下标从0开始;区分大小写
-
2strrpos(字符串,字符(串)):判断字符在目标字符串中最后出现的位置(不能判断中文字符(需要转utf-8);;区分大小写
-
3 stripos():用法同strpos,这个不区分大小写
-
4 strripos():用法同strrpos,这个不区分大小写
6.替换函数:
6. 1**str_replace(目标,想要的,字符串)**:将目标字符串中的目标替换成想要的。
7.格式化函数:
7. 1**printf() / sprintf()**:格式化输出数据.(同c语言中的输出,注意格式的使用.
8. 其他:
-
1str_repeat(字符串,N):重复某个字符串N次
-
2str_shuffle(字符串):随机打乱字符串。