一、打印输出类函数
打印输出类函数包括echo,print,printf,vprintf,sprintf,vspirntf,fprintf,vfprintf,sscanf,number_format。其中后8个有格式化输出字符串的功能。
打印输出函数举例
printf()函数用于打印出格式化字符串,并返回该字符串的长度
printf('%s has %d friends', 'Mike', 4);
<!--浏览器结果显示:Mike has 4 friends-->
echo printf('%s has %d friends', 'Mike', 4);
<!--浏览器结果显示:Mike has 4 friends 18 其中18就是字符串的长度 -->
vprintf()函数类似于printf()函数,只不过格式化字符串是接收的是数组
vprintf('%s has %d friends', ['Mike', 4]);
<!--结果是:Mike has 4 friends -->
sprintf()函数用于返回格式化字符串
sprintf(%s has %d friends', 'Mike', 4);
<!--浏览器上不显示任何内容-->
$ret = sprintf(%s has %d friends', 'Mike', 4);
echo $ret;
<!--结果返回:Mike has 4 friends -->
sscanf()函数用于指定格式解析字符串,并返回数组
print_r(sscanf('sn-123-abc','sn-%d-%s'));
<!--结果是:Array([0]=>123 [1]=>abc)-->
print_r(sscanf('sn-123-abc','s-%d-%s'));
<!--结果返回:Array([0]=> [1]=>),字符串与格式不符合 -->
number_format()函数用于格式化数字,返回数字
echo number_formet(1234.567);
<!--结果是:1,235 默认保留0位小数,并四舍五入-->
echo number_format(1234.567, 2,'.','');
<!--结果是:1234.57 第二个参数是小数位数,第三个参数是小数点表示形式,第四个参数是千分位,设置为空字符串就没有"," ,默认千分位是",". -->
二、分割、查询、替换函数
第一组
implode,join,explode,substr,substr_count,substr_replace,str_split,str_getcsv等。
implode($sep, $string),join($sep, $string) 用于将一个一维数组转化为字符串
echo implode('; ', ['php', 'js', 'python', 'html', 'css']);
# 结果是:php; js; python; html; css
explode($sep, $string) 用于将一个字符串分割另一个字符串,并返回数组
echo sprintf("<pre>%s</pre>", print_r(explode(", ", "php, java, js, html, python"), true));
#结果返回:
# Array
# (
# [0]=> php
# [1]=> java
# [2]=> js
# [3]=> html
# [4]=> python
# )
substr($string, $start, $length) 函数用于返回字符串的子串
echo substr("This is a good game!",-4, 4);
#结果是: game
substr_count($haystack, $needle, $offset, $length),返回子字符串的个数
echo substr_count("This is a good game", "is",0,5);
# 结果是 1; 从第0个元素开始查找,查找5个字符。
echo substr_count("This is a good game", "is",'0');
# 结果是 2
substr_replace($string, $replacement, $start, $length),替换字符串
echo substr_replace('hello world', '你好', 0, 5);
# 运行结果:你好 world
str_split($string, $splitLength),将字符串转化为数组,默认字符串的每一个字符是数组的一个值。
echo sprintf('<pre>%s</pre>', print_r(str_split('hello world!'), true));
# 结果是:
Array
(
[0] => h
[1] => e
[2] => l
[3] => l
[4] => o
[5] =>
[6] => w
[7] => o
[8] => r
[9] => l
[10] => d
[11] => !
)
#如果指定的第二个参数
echo sprintf('<pre>%s</pre>', print_r(str_split('hello world!', 3), true));
#那么结果会变为:
Array
(
[0] => hel
[1] => lo
[2] => wor
[3] => ld!
)
str_getcsv()函数解析csv字符串,并返回数组
print_r(str_getcsv('bob,mike,hello'));
#结果返回: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)填充字符串
echo str_pad('string',10,'-',2);
# 结果是:--string--
# 第二个参数是填充后字符串的总长度,第四个参数有STR_PAD_BOTH(2),STR_PAD_LEFT(0),STR_PAD_RIGHT(1,默认);
str_repeat($input, $multiplier) 重复字符串
echo str_repeat('abc',8);
#结果是:abcabcabcabcabcabcabcabc
str_replace($search, $replace, $subject, $count),$search和$replace 可以是数组,$subject也可以是数组,表示数组里的每一个元素都进行查找替换,$count表示共替换的次数。
echo str_replace(['bob','mike', 'cindy'],['鲍勃','麦克','辛迪'],'bob, mike and cindy are good friends');
# 结果是:鲍勃, 麦克 and 辛迪 are good friends
#如果我们加上第四个参数
echo str_replace(['bob','mike', 'cindy'],['鲍勃','麦克','辛迪'],'bob, mike and cindy are good friends',$count);
echo '<br />';
echo $count;
#结果返回:
#鲍勃, 麦克 and 辛迪 are good friends
#3
str_ireplace($search, $replace, $subject, $count),str_replace()的忽略大小写版本,ignore
strtr($string,[$fromstring=>$tostring])替换指定字符串
echo strtr('string',['str'=>'']);
# 结果是:ing
strstr($haystack, $needle, bool)找到指定的字符串之前或之后的部分,如果没有找到,返回null
echo strstr('a long string','long',true);
# 结果是:a
echo strstr('a long string','long', false);
# 结果是:long string, 默认false
str_shuffle($string)随机打乱一个字符串
echo str_shuffle('string');
#结果是:snitrg
wordwrap($string, $width, $break, bool)函数打断字符串为指定数量的字符串,$width 表示最大行宽度,$break表示分割符,可设置为’<br>\n’,bool为false,表示单词no-wrap(默认).
echo wordwrap('string',3,"<br>",true);
# 结果是:
# str
# ing
trim($string, $char)去除首尾字符串指定字符。默认空白字符。也可以自定义。
echo trim('@str@ing@how@','@');
# 结果是:str@ing@how。首尾的@符号去除了
rtrim($string,$char),ltrim($string,$char),分别去除右边和左边的符号.chop()函数别名rtrim()