Blogger Information
Blog 17
fans 0
comment 0
visits 19012
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP中字符串的定义方式及字符串中的常用函数
嘬一口啊
Original
930 people have browsed it

字符串的定义方式

注意:字符串的大小上限是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
Correcting teacher:GuanhuiGuanhui

Correction status:qualified

Teacher's comments:代码写的挺好,很规范。
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post