문자열 변환 문의좀 드리겠습니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

문자열 변환 문의좀 드리겠습니다. 정보

문자열 변환 문의좀 드리겠습니다.

본문

<?=$list[$i][name]?>


게시판 리스트의 작성자에 나타나는 이름을 아래와 같이 변경을 하고 싶습니다.
 
홍길동이면

홍*동 또는 홍**  이런식으로 중간글자만 변환한다던니 아니면 첫자리 이후에는 특수문자로 변경을 하고 싶습니다.


질문답변 검색을 해서 이리저리  적용을 해봐도 잘 안되네요.
알려주시면 감사드리겠습니다.
  • 복사

댓글 전체

$name = "홍길동";
$name = str_replace(substr($name, 2,2), "*", $name);
echo($name."<br>");

$name = str_replace(substr($name, 2,4), "**", $name);
echo($name);


str_replace : 문자열 치환함수.
substr 문자열 자르기.
---------------------------------------------
1. substr 을 통해 이름의 두번째 글자를 찾는다.  === substr($name, 2,2)
2. 찾은 글자, 즉 [길] 을 * 로 바꾼다.

여기에서 substr 은 2 글자 단위로 잘라줘야 합니다. 한글은 2byte 이기때문에 ...

name 부분만 위에 적으신 $list[$i][name] 로 바꾸시면 되겠네요..
답변정말 감사드립니다. ^^
근대 현재는 기본적으로 이름이 나오는곳이 아래처럼 되어 있는데
말씀하신 부분을 정확히 어디에 어떻게 넣어야 하는 지를 모르겠습니다. name이 여러개인데 전체다 바꿔야 하는지요.
<?=$list[$i][name]?>
name 이 여러개라는 게 무슨 뜻인지 정확히 모르겠어요...
while 문 안에서
<?=$list[$i][name]?>
<?=$list[$i][wr_1]?>  등등 으로 코드상에 한번만 표시되어 있지 않나요?
name 부분만 위에 적으신 $list[$i][name] 로 바꾸시면 되겠네요.라고 말씀을 하셔서요^^
아래 처럼 name이 많이보여서요.

$name = "홍길동";
$name = str_replace(substr($name, 2,2), "*", $name);
echo($name."<br>");

$name = str_replace(substr($name, 2,4), "**", $name);
echo($name);

정확히
<?=$list[$i][name]?> 을 포함해서 어떻게 전체 문장을 어떻게 넣을야 할까요. 제가 초보여서 헷갈리네요.^^
에고.... 제가 그냥 php 에서만 테스트를 해봐서 그누보드 내에서는 좀 틀리네요..
혹시 모든 게시판에 이러한 기능을 적용하실 거라면.
lib/common.lib.php 파일의 318 라인쯤에
----------------------------------------------------
$tmp_name = get_text(cut_str($list['wr_name'], $config['cf_cut_name'])); // 설정된 자리수 만큼만 이름 출력
----------------------------------------------------
이런 게 있을거예요..

바로 밑에
-----------------
$tmp_name = str_replace(substr($tmp_name, 3,3), "*", $tmp_name);
--------------------

요거 한줄 추가해주시고 테스트 해보세요...


각 게시판 별로 달리 적용하시려면 skin 쪽을 변경해야 해서.. 약간 코드가 들어가야 할 것 같네용..

게시판 별로 다르게 적용하시려면 다시 댓글 주세요.. ㅠ.ㅠ 다시 해볼게요 ㅋㅋㅋ
답변 감사드립니다.^^
$tmp_name = str_replace(substr($tmp_name, 2,4), "*", $tmp_name);
이런식으로 말씀하신대로 변경을 하니까 다 되기는 하는데
관리자로 로그인을 해도 게시판 내용에 들어가도 모두 홍**이런식으로 표현이 되네요.
특정 게시판에서만 적용을 하고 싶거든요.^^
은행나무침대님이 좋은 답변 해주셨네요.

특정 게시판에서만 사용을 하고 싶다면. 스킨만 수정해서 쓰는게 가장 좋을 것 같습니다.

list.skin.php
파일 여시고 보시다보면

for ($i

로 시작하는 소스가 있습니다.

그줄 밑에다가

$list[$i][name] = str_replace(substr($name, 2,4), "**", $name);
를 추가해주세요.
('' 서누니님... 저도 처음에 그렇게 생각했었는데... 테스트 해보니,
common.lib.php 파일 자체에서
name  = "<span class='클래스명' 어쩌고저쩌고>name</span> " ; 요만큼 전체를 변수에 저장하더라구용... 

... 그래서 skin 쪽에서 문자열을 자르면 span 태그 부분이 substring 됩니다.

skin 쪽에서 문자열을 자르려면 span 태그 제거 먼저 하고, name 만을 구한 후 substr 해야 합니다.

저두 그누 접한지 며칠 안돼서... 설마 저만 그런건 아니겠죠 -0-???
아아 그걸 깜빡했네요.
ㄷㄷㄷ
리스트 화면에서 사이드 메뉴를 쓰지 않는다면.(질문자의 의도면 사이드 메뉴를 쓰지 않겠죠)
$list[$i][name]대신  $list[$i][wr_name] 을 이용하면 되겠네요.
ㅎㅎ
두분다 답변해 주셔서 정말 감사드립니다.^^
허나 제가 초보여서 아직 말씀하신부분들을 이해하기가 힘듭니다.^^
어떻게 넣어야 될 부분만을 상세히 설명을 좀 해주시면 안될까요^^
© SIRSOFT
현재 페이지 제일 처음으로