博客列表 >PHP中字符串的定义方式及字符串中的常用函数

PHP中字符串的定义方式及字符串中的常用函数

嘬一口啊
嘬一口啊原创
2020年07月14日 11:37:41931浏览

字符串的定义方式

注意:字符串的大小上限是2G

1.单引号定义字符串

  1. // 单引号定义一个字符串
  2. 例:$str = 'String';
  3. // 单引号中不能解析变量
  4. 例:
  5. echo 'This is a $str','<br>'; // 输出 This is a $str[将变量名原样输出]
  6. // 单引号中的特殊字符不能被解析
  7. echo 'hello \n\r world','<br>'; // 输出 hello \n\r world 将特殊字符原样输出
  8. // 单引号中出现单引号[单引号不能解析单引号]
  9. // 字符串中的单引号有二重意义: 定界符, 单引号
  10. echo 'hello 'world''; // 直接报错
  11. // 解决单引号中出现单引号,让他正常输出
  12. echo 'hello \'world\'','<br>'; // 输出 hello 'world'
  13. // 在字符串中输出转义字符:\.连续两个\\就可以
  14. echo 'hello world \\','<hr>'; // 输出 hello world \

总结:单引号中可以解析双引号,单引号中不能解析变量,单引号不能解析单引号,单引号不能解析特殊字符

2.双引号定义字符串

  1. 例:$srt = "String";
  2. // 双引号中也不能解析双引号
  3. // echo "hello "world" "; // 报错
  4. // 双引号中解析双引号也是使用转义字符转义掉
  5. echo "hello \"world\""; // 输出 hello "world"
  6. // 双引号可以解析变量
  7. echo "This is a $str",'<br>'; // 输出 This is a String
  8. // 双引号可以解析特殊字符
  9. // \r \n在源代码中可以查看是否被解析生效
  10. echo "hello \r\n world",'<hr>'; // 输出 hello world \
  11. // 当变量和字符串连在一起时如何分辨解析出变量
  12. // echo "This is a $str123"; // 输出报错 $str123变量是未定义的
  13. // 解决办法使用一个{}把变量名括起来
  14. echo "This is a {$str}123",'<br>';// 输出 This is a String123

总结:双引号中不能解析双引号,双引号中可以解析单引号,双引号可以解析变量,双引号中可以解析特殊字符,当变量名和字符串连在一起时使用{}把变量名括起来

3.heredoc定义字符串 可以看做是双引号的字符串plus+

  1. // heredoc中的字符串不需要双引号定界符
  2. // 和双引号的区别:和双引号的区别:里面的字符串不需要双引号定界符, 可在里面解析双引号
  3. // 非常适合html+php混编:写模板
  4. 例:
  5. // 输出 String[字体颜色蓝色]
  6. echo <<< HELLO
  7. <span style="color:blue">$str</span>
  8. HELLO;

4.nowdoc定义字符串 可以看做是单引号字符串的PLus+

  1. // 名字一定要加上单引号否则会自动认为是heredoc
  2. // 和单引号的区别:里面的字符串不需要双引号定界符, 可在里面解析单引号
  3. 例:
  4. // 输出 This is a 'world'
  5. echo <<< 'world'
  6. This is a 'world'
  7. world;

字符串函数

字符串打印输出函数

1.printf();将输出的字符串按指定的格式模板输出

  1. printf('模板', 替换占位符的值[类型是字符串类型])
  2. 这里将world替换掉字符串'hello %s'中的%s占位符
  3. 1
  4. printf('Hello %s','world'); // 输出 Hello world
  5. 2
  6. printf('SELECT * FROM `%s` LIMIT %d','user',10); // 输出 SELECT * FROM `user` LIMIT 10

2.vprintf(): 功能与printf()一样,参数不同[参数是一个数组]

  1. vprintf('模板',替换占位符的值[值类型是数组类型]):
  2. 例:
  3. vprintf('SELECT * FROM `%s` LIMIT %d',['user',5]); // 输出 SELECT * FROM `user` LIMIT 5

3.sprintf():返回格式化字符串,而不是输出

  1. sprintf('模板',替换占位符的值[值类型是字符串类型])
  2. 例:
  3. $sql = sprintf('SELECT * FROM `%s` LIMIT %d','stu',10);
  4. echo $sql; // 输出 SELECT * FROM `stu` LIMIT 10

4.vsprintf();于sprintf();功能相同,参数不同[参数为数组格式]

  1. vsprintf('模板',替换占位符的值[值类型是数组类型]);
  2. 例:
  3. $sql = vsprintf('SELECT * FROM `%s` LIMIT %d',['stu',5]);
  4. echo $sql; // 输出SELECT * FROM `stu` LIMIT 5;

字符串分割与查询替换函数

implode();和join()函数:把数组元素组合为字符串

  1. // implode('以什么分割',被分割的数组);:把数组元素组合为字符串
  2. 例:
  3. echo implode('--',['html','css','php']),'<br>'; // 输出 html--css--php
  4. // join('分隔符',被分割的数组)把数组元素组合为一个字符串和implode*()函数功能相同
  5. echo join('--', ['html', 'css','php']),'<hr>';

explode();函数:把字符串打散为数组

  1. // explode("以什么分割",被分割的字符串);: 把字符串打散为数组;
  2. 例:
  3. $str = "Hello world I Love beijing";
  4. print_r(explode(" ",$str)); // 输出 Array ( [0] => Hello [1] => world [2] => I [3] => Love [4] => beijing )

list()函数:把数组中的每个元素都赋给一个单独的变量

  1. $arr = ["Dog","Cat","Horse"];
  2. list($a,$b,$c) = $arr;
  3. echo $a,'<br>',$b,'<br>',$c,'<hr>'; // 输出 Dog,Cat,Horse

substr();函数:截取字符串

  1. substr(要截取的字符串,截取长度[默认是到字符串结束],从起始到结束长度) 截取字符串
  2. 例:
  3. echo substr('abcdef',2),'<br>'; // 输出 cdef
  4. // 从第二个开始截取到他后面的两个结束
  5. echo substr('abcdef', 2, 2),'<br>'; // 输出 cd
  6. // 开始数值也可为负数
  7. echo substr('abcdef', -2),'<br>'; // 输出 ef
  8. echo substr('abcdef', -4,2),'<hr>'; // 输出 cd

str_split():函数:把字符串转为数组,可指定数组元素的宽度

  1. str_split(要转换为数组的字符串,指定数组元素的宽度值): 把字符串转为数组,可指定数组元素的宽度
  2. 例:
  3. print_r(str_split('baidu.com', 2)); // 输出 Array ( [0] => ba [1] => id [2] => u. [3] => co [4] => m )
  4. // php中utf编码格式下一个中文占三个字节 ,一个英文占一个字节
  5. print_r(str_split('这是abc',3)); // 输出 Array ( [0] => 这 [1] => 是 [2] => abc )

file_get_contents()函数:把文件中的内容一字符串的形式读取出来

  1. // file_get_contents('文件名')把文件中的内容一字符串的形式读取出来
  2. 提前创建一个test.csv文件
  3. 例:
  4. $csvStr = file_get_contents('test.csv');
  5. // 将字符串打散为数组
  6. print_r(explode("\n", $csvStr)); // 输出 Array ( [0] => 1 [1] => admin [2] => abc@qq.com )

str_pad()函数:填充字符串的右侧

  1. str_pad('要填充的字符串','填充长度','填充内容','填充在字符串的哪边[可选:默认在后边]'):将字符串填充到指定长度
  2. 例:
  3. echo str_pad('php', 10, '='); // 输出 php==========

str_replace() 字符串替换

  1. str_replace('被替换的值','替换上去的新值','被搜索的字符串');
  2. 例:
  3. echo str_replace('\\','/','\app\home\Index.php'); // 输出 /app/home/Index.php
  4. // 使用$count()函数查看被替换的值在字符串中被替换了几次
  5. echo str_replace('php', '*','php.cn,php,thinkphp', $count); // 输出 *.cn,*,think*
  6. echo 'php被替换了'.$count.'次';
  7. // 被替换的值也可以是一个数组
  8. $search = array('a','c','d');
  9. echo str_replace($search,'#','This a b c d e f g'); // 输出 This # b # # e f g
  10. // 替换的新值也可以是一个数组
  11. echo str_replace($search,array('A','C','D'),'This a b c d e f g'); // 输出 This A b C D e f g

trim()函数:从两边删除指定字符

  1. trim('被查找的字符串','要移出的字符')
  2. 例:
  3. $str = ' This is a dog ';
  4. // strlen();字符串的长度计算
  5. echo strlen(trim($str)),'<br>'; // 输出 13[13是$str值得字符串的字节数]
  6. 例:
  7. $str1 = 'aabbccdd hello world ddccbbaa';
  8. echo trim($str1,'aa'),'<br>'; // 输出 bbccdd hello world ddccbb
  9. // 限定祛除范围
  10. // a..z是祛除a到z所有字母
  11. 例:
  12. echo trim($str1,'a..z'),'<br>'; // 输出 hello world
  13. echo trim($str1,'a..b'),'<hr>'; // 输出 ccdd hello world ddcc
  14. // ltrim()祛除左边指定字符
  15. 例:
  16. echo ltrim($str1,'aa'),'<br>'; // 输出 bbccdd hello world ddccbbaa
  17. // rtrim()祛除右边指定字符
  18. 例:
  19. echo rtrim($str1,'aa'),'<br>'; // 输出 aabbccdd hello world ddccbb

strpos()函数:查找指定字符在字符串中首次出现的位置;

  1. strpos('被查找的字符串','查找的内容',查找的起始位置)
  2. 例:
  3. echo strpos('This is a dog','dog'); // 输出 10[10是dog中d在字符串中首次出现的位置的下标(下标从0开始)]
  4. echo strpos('This is a dog','is',4); // 输出 5[一位开始查找的位置是4直接绕过了前面那一个is]

strstr()函数:搜索字符串在另一字符串中是否存在,如果是,返回该字符串及剩余部分,否则返回 FALSE。

  1. strstr('被搜索的字符串','要搜索的字符串',默认false)
  2. 例:
  3. echo strstr('images/banner.jpg','.');// 输出 .jpg
  4. // 第三个参数为true默认值为 "false" 的布尔值。如果设置为 "true",它将返回 search 参数第一次出现之前的字符串部分
  5. echo strstr('images/banner.jpg','.', true); // 输出 images/banner
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议