PHP의 첫 문자와 마지막 문자를 제외한 모든 문자를 별표로 바꾸는 방법은 무엇입니까?PHP의 첫 문자와 마지막 문자를 제외한 문자열의 모든 문자를 별표로 대체하십시오.
예를 test
를 들어 t**t
및 profanity
이 p******y
등
PHP의 첫 문자와 마지막 문자를 제외한 모든 문자를 별표로 바꾸는 방법은 무엇입니까?PHP의 첫 문자와 마지막 문자를 제외한 문자열의 모든 문자를 별표로 대체하십시오.
예를 test
를 들어 t**t
및 profanity
이 p******y
등
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
$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;
에 대한 사용 위의 코드가 될 것이다. 이것은 귀하의 요구 사항을 충족시킬 것입니다.
뭔가 여기
$split_string = str_split($start_string);
$i = 1;
while ($i < count($split_string)-2){
split_string[$i] = '*';
$i++;
}
작은 기능과 같은 :
function asterisks($toConvert) {
$astNumber = strlen($toConvert) - 2;
return substr($toConvert, 0, 1) . str_repeat("*", $astNumber) . substr($toConvert, -1);
}
$tempString= 'teststring';
echo asterisks($tempString);
이 첫 번째를 교체하고 변수 $text
에서 *bcdefghijklm*
문자처럼 지속됩니다; [당신이 시도 무엇?]
$text = 'abcdefghijklmn';
$count = strlen($text)-1;
echo str_replace(array($text[0], $text[$count]), '*', $text);
(http://mattgemmell.com/2008/12/08/what-have-you-tried/) – Pankrates
사용'substr'은 첫 번째와 마지막 문자를 취득하는 단계; 다음에'(length ($ string) - 2)'별표를 사이에 추가하십시오. – andrewsi
업데이트 내 답변 [** 여기 **] (http://stackoverflow.com/questions/16090072/replace-all-characters-of-string-to-asterisks-except-first-and-last-characters- i/16090361 # 16090361) 그것을 확인하십시오! – samayo