2013-04-18 8 views
3

PHP의 첫 문자와 마지막 문자를 제외한 모든 문자를 별표로 바꾸는 방법은 무엇입니까?PHP의 첫 문자와 마지막 문자를 제외한 문자열의 모든 문자를 별표로 대체하십시오.

예를 test를 들어 t**tprofanityp******y

+2

(http://mattgemmell.com/2008/12/08/what-have-you-tried/) – Pankrates

+3

사용'substr'은 첫 번째와 마지막 문자를 취득하는 단계; 다음에'(length ($ string) - 2)'별표를 사이에 추가하십시오. – andrewsi

+0

업데이트 내 답변 [** 여기 **] (http://stackoverflow.com/questions/16090072/replace-all-characters-of-string-to-asterisks-except-first-and-last-characters- i/16090361 # 16090361) 그것을 확인하십시오! – samayo

답변

15
function get_starred($str) { 
    $len = strlen($str); 

    return substr($str, 0, 1).str_repeat('*', $len - 2).substr($str, $len - 1, 1); 
} 


$myStr = 'YourName'; 
echo get_starred($myStr); //should show Y******e 
0
$str = "test"; 
$len = strlen($str); 
$str1 = ''; 
for($i=0; $i < $len; $i++) { 
    if($i != 0 && $i != ($len-1)) { 
     $str1 .= '*'; 
    } else { 
     $str1 .= $str[$i]; 
    } 
} 

echo $str1; 

에 대한 사용 위의 코드가 될 것이다. 이것은 귀하의 요구 사항을 충족시킬 것입니다.

0

뭔가 여기

$split_string = str_split($start_string); 
$i = 1; 
while ($i < count($split_string)-2){ 
    split_string[$i] = '*'; 
    $i++; 
} 
3

작은 기능과 같은 :

function asterisks($toConvert) { 
    $astNumber = strlen($toConvert) - 2; 
    return substr($toConvert, 0, 1) . str_repeat("*", $astNumber) . substr($toConvert, -1); 
} 

$tempString= 'teststring'; 
echo asterisks($tempString); 
-1

이 첫 번째를 교체하고 변수 $text에서 *bcdefghijklm* 문자처럼 지속됩니다; [당신이 시도 무엇?]

$text = 'abcdefghijklmn'; 
$count = strlen($text)-1; 
echo str_replace(array($text[0], $text[$count]), '*', $text); 
관련 문제