2011-12-18 73 views
0

有没有办法将一个单词或数字的中间/保留(保留前两位)数字/字母?空白(X'out)中间数字字母

实施例:

123456789将12XXXXX89或Iamaword = Iaxxxxrd

+3

你吃过看看[内置字符串函数(http://php.net/manual/en/ref.strings.php) ? – Eric 2011-12-18 18:57:45

+0

这是基本的字符串操作。在阅读答案之前阅读手册,以便了解解决方案。 – 2011-12-18 19:01:55

回答

5

我不知道,如果大写或小写两个X是必要的,所以第一行可以为简单起见被移除:

$chr = ctype_digit($str) ? 'X' : 'x'; // big X for numbers, x for letters 

$new_str = substr($str, 0, 2) . str_repeat($chr, strlen($str) - 4) . substr($str, -2); 
+0

完美,谢谢。 – user990767 2011-12-18 19:21:54

0

当然。

<?php 

    function secure_str($str) { 
     return substr($str, 0, 2) . str_repeat('X', strlen($str)-4) . substr($str, strlen($str)-2); 
    } 

    echo secure_str("1234567890"); 

?> 
0
function blankit($word) { 
    return substr($word, 0,2). str_repeat("X",strlen($word)-4) . substr($word, strlen($word)-2,strlen($word)); 
} 

echo blankit("abcdefghijklmn"); 

打印

abXXXXXXXXXXmn 
相关问题