테스트 사이트 - 개발 중인 베타 버전입니다

데이터에서 이름을 추출할때 두번째 자리부터 OO으로 표시

· 13년 전 · 1442 · 3
지금 게시판하나를 짜고 있는데 막혀서요
 
다름이 아니라 작성자의 이름을 노출 시켜야 하는데
 
홍길동이면 홍OO나, 홍O동으로 노출을시키고 싶은데
 
함수가 아니 하는방법이 잘 기억이 가물가물..
 
혹.. 아시는분 계시면 부탁 드립니다...

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 3개

13년 전
substr_replace($name,'*',4,2);

은 이름뒤에 *로 출력이됩니다.
$name 가 네이버이면 네이*로 출력이됩니다.
나버지 부분은 알맞게 수정 하시면 됩니다.
아주 많이 감사합니다.
스쿨이 열리지 않는군요. 예전 댓글 링크 남기면 좋겠는데….
아무튼 Multibyte String Functions 쓸 수 있으면 이런 방법도 있어요.

$name = '홍길동';
mb_internal_encoding(mb_detect_encoding($name,'UTF-8,EUC-KR'));
for($i=0,$l=mb_strlen($name),$t=array();$i<$l;$i++)$t[]=mb_substr($name,$i,1);

$t에는 한 글자씩 나뉘어 배열로 '홍','길','동' 할당됩니다. $l은 글자 길이 3.
이 두 값을 이용해 지지고 볶고 하면 됩니다.

$test = $t; // 편하게 보기 위한 할당
$test[0] = '○'; echo implode('',$test); // ○길동

$test = $t;
$test[1] = '○'; echo implode('',$test); // 홍○동

$test = $t;
$test[2] = '○'; echo implode('',$test); // 홍길○
$test[$l-1] = '○'; echo implode('',$test); // 홍길○ … 길이 상관없이 마지막 한 글자

$test = $t;
echo $test[0].str_repeat('○',$l-1); // 홍○○

UTF-8 환경이면 아래처럼 짧게도 가능합니다.
$name = '홍길동';
preg_match_all('/./u',$name,$t); $t=$t[0];

EUC-KR 환경이면
$name = '홍길동';
preg_match_all('/[\x80-\xFF].|./',$name,$t); $t=$t[0];

‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥

http://phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&wr_id=309125
:

게시글 목록

번호 제목
12487
12486
380
12484
12483
376
12482
12481
12479
12478
12477
12476
12475
12474
12473
12472
12471
12470
12469
371
12468
12467
12466
12465
12464