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 上边界符后面什么内容分都不能有(空格也不行
    1.2 下边界符必须顶格
    1.3 下边界符同样后面只能跟分号,不能跟任何内容。
  2. 结构化定义字符串的内部(边界符之间)的所有内容都是字符串本身。
<?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键,输出四个空格。
  • \$ 输出$符号。

单引号与双引号的区别:视情况而定(最好用双引号

  1. 单引号只能够识别:\',但双引号中不能。
<?php
    $s1 = '\'';
	$s2 = "\'";
/*
输出为
'
\'
*/

  1. 双引号中因为能识别$符号,所以双引号中可以解析变量
<?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";

长度问题:

  1. 基本函数strlen():得到字符串的长度(字节为单位

    注意中文在utf-8字符集下占3个字节。

  2. 多字节字符串长度问题:包含中文的长度

  3. 多字节字符串扩展模块:mbstring扩展(mb:Multi Bytes

3.1 首先加载php的mbstring扩展(在php.ini中找mbstring,去掉注释。

3.2 可以使用mb_strlen()(mbstring扩展针对的是一些关于字符统计:strlen只针对ASCII,mb_strlen会针对不同的字符集

字符串长度问题.PNG

字符串函数:

可参照此处

用的时候百度就行(建议看看上面的超连接,看看有啥东西,用的时候能有个印象

支持中文基本都是mb_为前缀,安全截取。

​ ----出处丢失。

1.转换函数:

  1. 1implode(连接方式,数组):将数组中的元素按照某个规则连接成一个字符串

  2. 2 explode(分割字符,目标字符串):将字符串按照某个格式分割,变成数组

    1. 3 str_split(字符串,字符长度):按照规定长度拆分字符串得到数组

2.截取函数:

  1. 1 trim(字符串[,指定字符]):本身默认是用来出去两边的空字符(中间的不可去除),也可去掉两端指定的字符

  2. 2 ltrim():用法同trim,就是指定去掉左边的(可以按照lefttrim来理解,没有leftrim这个函数!

  3. 3 rtrim():用法同trim,指定去掉右边的(可按照righttrim来理解,没有rtrim这个函数!

3.截取函数:

  1. 1substr(字符串,起始位置[,长度]):从指定位置开始截取字符串,可截取指定的长度(不指定的话就默认到最后;别忘记字符串起始从0开始。

  2. 2strstr(字符串,匹配字符):从第一个匹配字符开始,截取到最后(可以用来取文件后缀名

4.大小写转换函数:

  1. 1 strtolower(字符串):全部小写

  2. 2 strtoupper(字符串):全部大写

  3. 3 ucfirst(字符串):首字母大写(需要考虑空格,空格的大写还是空格

5.查找函数:

  1. 1strpos(字符串,字符(串)):判断字符在目标字符串中首次出现的位置(不能判断中文字符(需要转utf-8);注意下标从0开始;区分大小写

  2. 2strrpos(字符串,字符(串)):判断字符在目标字符串中最后出现的位置(不能判断中文字符(需要转utf-8);;区分大小写

  3. 3 stripos():用法同strpos,这个不区分大小写

  4. 4 strripos():用法同strrpos,这个不区分大小写

6.替换函数:

  6. 1**str_replace(目标,想要的,字符串)**:将目标字符串中的目标替换成想要的。

7.格式化函数:

  7. 1**printf() / sprintf()**:格式化输出数据.(同c语言中的输出,注意格式的使用.

8. 其他:

  1. 1str_repeat(字符串,N):重复某个字符串N次

  2. 2str_shuffle(字符串):随机打乱字符串。

posted @ 2020-12-19 19:23  Seintf  阅读(112)  评论(0编辑  收藏  举报