Home  >  Article  >  Backend Development  >  怎么替换一个字符串中间的字符

怎么替换一个字符串中间的字符

WBOY
WBOYOriginal
2016-06-23 14:12:041492browse

怎么替换一个字符串中间的字符?
比如: fdsfdsfdsjkww
替换成:f**********w
比如: 扣分金锡民
替换成:扣***民
比如: 扣分金锡民s
替换成:扣****s
比如: tt扣分金锡民s
替换成:t*****s


回复讨论(解决方案)

<?php$str ='tt扣分金锡民s';function hide_repalce($str, $code='utf-8') {	mb_internal_encoding($code);	$len = mb_strlen($str);	return mb_substr($str, 0, 1) . str_repeat('*', $len - 2) . mb_substr($str, $len - 1, 1);}echo hide_repalce($str);

Replace ( string1, start, string2,n,m )

<?php$str ='tt扣分金锡民s';function hide_repalce($str, $code='utf-8') {	mb_internal_encoding($code);	$len = mb_strlen($str);	return mb_substr($str, 0, 1) . str_repeat('*', $len - 2) . mb_substr($str, $len - 1, 1);}echo hide_repalce($str);


有乱码,看到吗?

乱码要看你的编码是什么 设置正确的编码

$string='fdsfdsfdsjkww';
echo substr($string,0,1).'*****'.substr($string,$sLeng-1,1);


<?php$str ='tt扣分金锡民s';function hide_repalce($str, $code='utf-8') {	mb_internal_encoding($code);	$len = mb_strlen($str);	return mb_substr($str, 0, 1) . str_repeat('*', $len - 2) . mb_substr($str, $len - 1, 1);}echo hide_repalce($str);


有乱码,看到吗?

如果是使用utf8-编码,源文件的编码、输出显示的编码都要用utf-8

简单点的

$string='fdsfdsfdsjkww';echo substr_replace($string, str_repeat('*',strlen($string)-2), 1, strlen($string)-2);

注意长度问题,在不同编码下,中文和英文的字节会不一样的,多以长度要计算对了,不然会出现乱码

$string='fdsfdsfdsjkww';echo substr_replace($string, str_repeat('*',strlen($string)-2), 1, strlen($string)-2);

这个相对比较简单

substr_replace ? 替换字符串的子串

string
输入字符串。

replacement
替换字符串。

start
如果 start 为正数,替换将从 string 的 start 位置开始。

如果 start 为负数,替换将从 string 的倒数第 start 个位置开始。

length
如果设定了这个参数并且为正数,表示 string 中被替换的子字符串的长度。如果设定为负数,它表示待替换的子字符串结尾处距离 string 末端的字符个数。如果没有提供此参数,那么它默认为 strlen( string ) (字符串的长度)。当然,如果 length 为 0,那么这个函数的功能为将 replacement 插入到 string 的 start 位置处

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:求一段php+mysql防注入代码Next article:类继承问题