PHP字符串填充、替换相关函数

目录

 

【1】str_pad— 使用另一个字符串填充字符串为指定长度

【2】str_repeat— 重复一个字符串

【3】strtr — 转换指定字符

【4】str_replace— 子字符串替换

【小结】


【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/>';//在查找需要替换的字符忽略大小写

【小结】

  1. 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后的字符串。
  2. str_repeat($input,$multiplier)返回对$input原始字符重复$multiplier次数后的字符。
  3. strtr($str,$from,$to)返回对$str原始字符串中的$from替换成对应$to字符串。当然$from和$to可以写成数组的形式[$from=>$to]
  4. str_replace($search,$replace,$subject[,&$count])返回对$subject原始字符串查找$search替换成$replace,同时还会赋值$count替换次数。
  5. str_ireplace ($search,$replace,$subject[,&$count])与str_replace作用一样,只是说它的$search不区分大小写
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值