目录
【1】str_pad— 使用另一个字符串填充字符串为指定长度
【1】str_pad— 使用另一个字符串填充字符串为指定长度
作用:
该函数返回 input 被从左端、右端或者同时两端被填充到指定长度后的结果。
如果可选的 pad_string 参数没有被指定,input 将被空格字符填充,
否则它将被 pad_string 填充到指定长度。
函数:
str_pad ( string $input , int $pad_length [, string $pad_string, int $pad_type]) : string
参数:
$input 输入字符串
$pad_length 如果负数、小于、等于或者等于输入字符串长度,都不会填充,并返回$input
$pad_string 可选 如果填充字符的长度不能被整除,可能会被缩短,默认空格。
$pad_type 可选三个值STR_PAD_RIGHT,STR_PAD_LEFT,STR_PAD_BOTH默认是从右侧进行填充也就是STR_PAD_RIGHT
返回值:
返回填充后的字符串。
$input = "TACKS";
echo str_pad($input, 10),'END','<br/>'; // 输出TACKS END 默认从右侧被一个空格填充
echo str_pad($input, 10, "#", STR_PAD_LEFT),'<br/>'; // 输出#####TACKS 从左边填充#到长度为10
echo str_pad($input, 10, "&", STR_PAD_BOTH),'<br/>'; // 输出&&TACKS&&& 从两边填充&到长度为10
echo str_pad($input, 6, "___"),'<br/>'; // 输出TACKS_ 从右边填充___到长度为6多出的截断
echo str_pad($input, 3, "*"),'<br/>'; // 输出TACKS 填充的小于原本的字符长度,就直接返回字符
【2】str_repeat— 重复一个字符串
作用
返回 input 重复 multiplier 次后的结果。
函数
str_repeat ( string $input , int $multiplier ) : string
参数
$input 待操作的字符串 $multiplier 重复次数 必须大于0
当$multiplier=0函数返回空字符串
返回值
返回重复后的字符串。
echo str_repeat("Tacks", 3),'<br/>';//重复三次Tacks然后返回TacksTacksTacks
echo str_repeat("Tacks", 0),'<br/>';//返回空的字符串
echo str_repeat("Tacks", -1),'<br/>';//报错 第二个参数必须大于等于0
【3】strtr — 转换指定字符
作用:
strtr — 转换指定字符
函数:
strtr ( string $str , string $from , string $to ) : string
strtr ( string $str , array $replace_pairs ) : string
参数:
$str 待转换的字符串。
$from 字符串中与将要被转换的目的字符 to 相对应的源字符。
$to 字符串中与将要被转换的字符 from 相对应的目的字符。
$replace_pairs 参数 replace_pairs 可以用来取代 to 和 from 参数
因为它是以 array('from' => 'to', ...) 格式出现的数组。
返回值:
返回转换后的字符串。如果 replace_pairs 中包含一个空字符串("")键,那么将返回 FALSE。
echo strtr('TACKS', "ACKS", "acks"),'<br/>';#第一种写法 Tacks
echo strtr('TACKS', ["ACKS"=>"acks"]),'<br/>';#第二种写法 Tacks
echo strtr('TACKS', ["ACKS"=>"acks",'T'=>'t']),'<br/>';#替换多处 tacks
【4】str_replace— 子字符串替换
作用:
该函数返回一个字符串或者数组。
该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果。
函数:
str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) : mixed
参数:
$search 查找的目标值,也就是 needle。一个数组可以指定多个目标。
$replace search 的替换值。一个数组可以被用来指定多重替换。
$subject 执行替换的数组或者字符串。也就是 haystack。
如果 subject 是一个数组,替换操作将遍历整个 subject,返回值也将是一个数组。
$count 如果被指定,它的值将被设置为替换发生的次数。
返回值:
该函数返回替换后的数组或者字符串。
备注:
由于 str_replace() 的替换时从左到右依次进行的,进行多重替换的时候可能会替换掉之前插入的值。
- str_ireplace — str_replace() 的忽略大小写版本
//str_replace
$str = str_replace('Tacks','b','<Tacks> echo 1 </Tacks>');#将Tacks替换成b
echo $str,'<br/>';//输出的echo 1将会被加粗
$arr = str_replace(['x','y','z'],'*','www.tacks.xyz');#xyz都替换成*
echo $arr,'<br/>';//输出www.tacks.***
$search = ['apple','banana','pear','mango'];#search数组元素个数与replace个数一样
$replace = ['a','b','c','d'];#替换的时候对应替换
$subject = 'I like apple,banana,pear,mango';#数组替换对应数组位置的元素值
echo str_replace($search,$replace,$subject),'<br/>';//I like a,b,c,d
$search = ['apple','banana','pear','mango'];#search数组元素个数小于replace
$replace = ['a','b'];#前两个对应替换
$subject = 'I like apple,banana,pear,mango';#剩下的利用空字符串替换
echo str_replace($search,$replace,$subject),'<br/>';//I like a,b,,
$str = str_replace("T", "", "Tacks Tacks ", $count);#指定替换的次数变量
echo $count,'<br/>';#被替换的次数 2
echo $str,'<br/>';#替换后的字符串 acks acks
$search = array('a', 'p');
$replace = array('apple', 'pear');
$subject = 'a p';
$output = str_replace($search, $replace, $subject);
echo $output,'<br/>';//apearpearle pear
//str_ireplace
echo str_ireplace('tacks','TACKS','tacks,Tacks,TACKS'),'<br/>';//在查找需要替换的字符忽略大小写
【小结】
- str_pad($input,$pad_length[,$pad_string,$pad_type])返回向$input原字符使用一个$pad_string填充字符从左或者右或者两端($pad_type有三个可选值STR_PAD_RIGHT,STR_PAD_LEFT,STR_PAD_BOTH)同时填充指定长度$pad_length后的字符串。
- str_repeat($input,$multiplier)返回对$input原始字符重复$multiplier次数后的字符。
- strtr($str,$from,$to)返回对$str原始字符串中的$from替换成对应$to字符串。当然$from和$to可以写成数组的形式[$from=>$to]。
- str_replace($search,$replace,$subject[,&$count])返回对$subject原始字符串查找$search替换成$replace,同时还会赋值$count替换次数。
- str_ireplace ($search,$replace,$subject[,&$count])与str_replace作用一样,只是说它的$search不区分大小写。