Blogger Information
Blog 3
fans 0
comment 0
visits 1784
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP:字符串函数的初体验
夸父逐日
Original
574 people have browsed it

一、打印输出类函数

打印输出类函数包括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()

Correcting teacher:天蓬老师天蓬老师

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