博客列表 >PHP:字符串函数的初体验

PHP:字符串函数的初体验

夸父逐日
夸父逐日原创
2020年04月24日 08:06:31577浏览

一、打印输出类函数

打印输出类函数包括echo,print,printf,vprintf,sprintf,vspirntf,fprintf,vfprintf,sscanf,number_format。其中后8个有格式化输出字符串的功能。

打印输出函数举例

printf()函数用于打印出格式化字符串,并返回该字符串的长度

  1. printf('%s has %d friends', 'Mike', 4);
  2. <!--浏览器结果显示:Mike has 4 friends-->
  3. echo printf('%s has %d friends', 'Mike', 4);
  4. <!--浏览器结果显示:Mike has 4 friends 18 其中18就是字符串的长度 -->

vprintf()函数类似于printf()函数,只不过格式化字符串是接收的是数组

  1. vprintf('%s has %d friends', ['Mike', 4]);
  2. <!--结果是:Mike has 4 friends -->

sprintf()函数用于返回格式化字符串

  1. sprintf(%s has %d friends', 'Mike', 4);
  2. <!--浏览器上不显示任何内容-->
  3. $ret = sprintf(%s has %d friends', 'Mike', 4);
  4. echo $ret;
  5. <!--结果返回:Mike has 4 friends -->

sscanf()函数用于指定格式解析字符串,并返回数组

  1. print_r(sscanf('sn-123-abc','sn-%d-%s'));
  2. <!--结果是:Array([0]=>123 [1]=>abc)-->
  3. print_r(sscanf('sn-123-abc','s-%d-%s'));
  4. <!--结果返回:Array([0]=> [1]=>),字符串与格式不符合 -->

number_format()函数用于格式化数字,返回数字

  1. echo number_formet(1234.567);
  2. <!--结果是:1,235 默认保留0位小数,并四舍五入-->
  3. echo number_format(1234.567, 2,'.','');
  4. <!--结果是:1234.57 第二个参数是小数位数,第三个参数是小数点表示形式,第四个参数是千分位,设置为空字符串就没有"," ,默认千分位是",". -->

二、分割、查询、替换函数

第一组
implode,join,explode,substr,substr_count,substr_replace,str_split,str_getcsv等。

implode($sep, $string),join($sep, $string) 用于将一个一维数组转化为字符串

  1. echo implode('; ', ['php', 'js', 'python', 'html', 'css']);
  2. # 结果是:php; js; python; html; css

explode($sep, $string) 用于将一个字符串分割另一个字符串,并返回数组

  1. echo sprintf("<pre>%s</pre>", print_r(explode(", ", "php, java, js, html, python"), true));
  2. #结果返回:
  3. # Array
  4. # (
  5. # [0]=> php
  6. # [1]=> java
  7. # [2]=> js
  8. # [3]=> html
  9. # [4]=> python
  10. # )

substr($string, $start, $length) 函数用于返回字符串的子串

  1. echo substr("This is a good game!",-4, 4);
  2. #结果是: game

substr_count($haystack, $needle, $offset, $length),返回子字符串的个数

  1. echo substr_count("This is a good game", "is",0,5);
  2. # 结果是 1; 从第0个元素开始查找,查找5个字符。
  3. echo substr_count("This is a good game", "is",'0');
  4. # 结果是 2

substr_replace($string, $replacement, $start, $length),替换字符串

  1. echo substr_replace('hello world', '你好', 0, 5);
  2. # 运行结果:你好 world

str_split($string, $splitLength),将字符串转化为数组,默认字符串的每一个字符是数组的一个值。

  1. echo sprintf('<pre>%s</pre>', print_r(str_split('hello world!'), true));
  2. # 结果是:
  3. Array
  4. (
  5. [0] => h
  6. [1] => e
  7. [2] => l
  8. [3] => l
  9. [4] => o
  10. [5] =>
  11. [6] => w
  12. [7] => o
  13. [8] => r
  14. [9] => l
  15. [10] => d
  16. [11] => !
  17. )
  18. #如果指定的第二个参数
  19. echo sprintf('<pre>%s</pre>', print_r(str_split('hello world!', 3), true));
  20. #那么结果会变为:
  21. Array
  22. (
  23. [0] => hel
  24. [1] => lo
  25. [2] => wor
  26. [3] => ld!
  27. )

str_getcsv()函数解析csv字符串,并返回数组

  1. print_r(str_getcsv('bob,mike,hello'));
  2. #结果返回:Array ( [0] => bob [1] => mike [2] => hello )

第二组

str_pad,str_repeat,str_replace,str_ireplace,strstr,str_shuffle,wordwrap,trim,rtrim,ltrim,chop

str_pad($input, $pad_length, $pad_string, $pad_type)填充字符串

  1. echo str_pad('string',10,'-',2);
  2. # 结果是:--string--
  3. # 第二个参数是填充后字符串的总长度,第四个参数有STR_PAD_BOTH(2),STR_PAD_LEFT(0),STR_PAD_RIGHT(1,默认);

str_repeat($input, $multiplier) 重复字符串

  1. echo str_repeat('abc',8);
  2. #结果是:abcabcabcabcabcabcabcabc

str_replace($search, $replace, $subject, $count),$search和$replace 可以是数组,$subject也可以是数组,表示数组里的每一个元素都进行查找替换,$count表示共替换的次数。

  1. echo str_replace(['bob','mike', 'cindy'],['鲍勃','麦克','辛迪'],'bob, mike and cindy are good friends');
  2. # 结果是:鲍勃, 麦克 and 辛迪 are good friends
  3. #如果我们加上第四个参数
  4. echo str_replace(['bob','mike', 'cindy'],['鲍勃','麦克','辛迪'],'bob, mike and cindy are good friends',$count);
  5. echo '<br />';
  6. echo $count;
  7. #结果返回:
  8. #鲍勃, 麦克 and 辛迪 are good friends
  9. #3

str_ireplace($search, $replace, $subject, $count),str_replace()的忽略大小写版本,ignore

strtr($string,[$fromstring=>$tostring])替换指定字符串

  1. echo strtr('string',['str'=>'']);
  2. # 结果是:ing

strstr($haystack, $needle, bool)找到指定的字符串之前或之后的部分,如果没有找到,返回null

  1. echo strstr('a long string','long',true);
  2. # 结果是:a
  3. echo strstr('a long string','long', false);
  4. # 结果是:long string, 默认false

str_shuffle($string)随机打乱一个字符串

  1. echo str_shuffle('string');
  2. #结果是:snitrg

wordwrap($string, $width, $break, bool)函数打断字符串为指定数量的字符串,$width 表示最大行宽度,$break表示分割符,可设置为’<br>\n’,bool为false,表示单词no-wrap(默认).

  1. echo wordwrap('string',3,"<br>",true);
  2. # 结果是:
  3. # str
  4. # ing

trim($string, $char)去除首尾字符串指定字符。默认空白字符。也可以自定义。

  1. echo trim('@str@ing@how@','@');
  2. # 结果是:str@ing@how。首尾的@符号去除了

rtrim($string,$char),ltrim($string,$char),分别去除右边和左边的符号.chop()函数别名rtrim()

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议