비

데이터에서 이름을 추출할때 두번째 자리부터 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
:
댓글을 작성하시려면 로그인이 필요합니다.

팁게시판

6,077건

디자인과 관련된 유용한 정보를 공유하세요. 질문은 상단의 QA에서 해주시기 바랍니다.

+
제목 글쓴이 날짜 조회
16-03-02 조회 875
16-01-19 조회 504
15-12-23 조회 657
15-12-08 조회 1,304
14-10-30 조회 2,894
14-06-06 조회 2,308
12-08-30 조회 1,518
12-08-20 조회 1,287
12-07-15 조회 2,717
12-07-13 조회 1,493
12-07-06 조회 1,479
12-06-27 조회 1,031
12-06-23 조회 1,147
12-05-03 조회 3,112
12-04-20 조회 2,056
12-03-29 조회 2,378
12-03-22 조회 2,724
12-03-22 조회 1,468
12-03-21 조회 1,297
12-03-11 조회 1,635
12-03-06 조회 1,912
12-02-22 조회 2,251
12-02-17 조회 1,232
12-02-17 조회 4,280
12-02-14 조회 3,901