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

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

댓글 3개

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
:
댓글을 작성하시려면 로그인이 필요합니다. 로그인

개발자팁

개발과 관련된 유용한 정보를 공유하세요. 질문은 QA에서 해주시기 바랍니다.

+
분류 제목 글쓴이 날짜 조회
JavaScript 13년 전 조회 2,628
기타 13년 전 조회 1,980
PHP 13년 전 조회 2,080
MySQL 13년 전 조회 3,108
JavaScript 13년 전 조회 2,296
jQuery 13년 전 조회 1.2만
PHP 13년 전 조회 1,804
JavaScript 13년 전 조회 4,415
PHP 13년 전 조회 1,947
JavaScript 13년 전 조회 2,200
기타 13년 전 조회 2,025
jQuery 13년 전 조회 3,417
PHP 13년 전 조회 2,330
PHP 13년 전 조회 2,151
PHP 13년 전 조회 3,089
Mobile 13년 전 조회 2,179
Flash 13년 전 조회 3,116
JavaScript 13년 전 조회 2,322
JavaScript 13년 전 조회 3,638
기타 13년 전 조회 2,867
기타 13년 전 조회 2,494
기타 13년 전 조회 1,750
PHP 13년 전 조회 1,775
Flash 13년 전 조회 2,841
MySQL 13년 전 조회 2,248
기타 13년 전 조회 2,192
JavaScript 13년 전 조회 2,370
Linux 13년 전 조회 2,354
jQuery 13년 전 조회 2,905
정규표현식
[정규표현식]
13년 전 조회 8,582
🐛 버그신고