📖
그누보드5 이름을 성만 남기고 가리는 정규표현식 전화번호 중간 부분을 별표 *** 표시로 숨기기

페이지 정보

본문

[code]$list[$i]['name']= preg_replace("/^(.{1})(.*)/u","$1*****",$list[$i]['wr_name']);[/code]
신청서나 예약 게시판을 사용할 때 개인 정보 노출 방지용으로 이름이나 연락처 일부를 숨기는 방법입니다.

여러 방법을 무작위로 나열했습니다. 원하는 방식으로 아무거나 사용하면 됩니다.
관리자 아이디가 admin이 아닐 때는 admin 부분을 바꿔주세요.
admin 대신에 $config['cf_admin'] 이렇게 넣어도 됩니다.[code]if (!$is_admin && $list[$i]['mb_id'] != $config['cf_admin']) {[/code]이렇게 해 놓으면 나중에 관리자가 바뀌어도 별도로 수정할 필요가 없습니다.

$list[$i]['mb_id'] != admin;
이 부분이 의미하는 건 관리자가 작성한 글은 별표 처리에서 제외한다는 내용입니다.
관리자가 작성한 게시물까지 전부 별표 처리하고 싶으면 아래 내용에서 && $list[$i]['mb_id'] != 'admin' 부분을 삭제하면 됩니다.[code]if (!$is_admin && $list[$i]['mb_id'] != 'admin') {[/code]
일반 회원들의 본인이 작성한 글은 별표 처리에서 제외하고 싶으면 이렇게 수정.[code]if (!$is_admin && $list[$i]['mb_id'] != $member['mb_id']) {[/code]
관리자뿐만 아니라 글을 작성한 본인 글도 별표 처리에서 제외하고 싶으면 이렇게 수정.[code]if (!$is_admin && $list[$i]['mb_id'] != 'admin' && $list[$i]['mb_id'] != $member['mb_id']) {[/code]
1. 한글 이름 맨 뒷자리 한자리나 두자리를 *로 표시하는 방법
대부분의 예제는 substr 을 사용해서 한글+영문,숫자 조합에 적용하면 출력이 깨질 수 있습니다.
그럴 경우엔 substr 대신에 mb_substr 로 변경해보세요.[code]$list[$i]['name'] = mb_substr($list[$i]['wr_name'], 0, -2).'**';[/code]자리수는 0, -2 부분에서 적당히 조절하시면 됩니다.

1-1. 이름 뒷자리 한글자를 * 로 표시하는 방법
list.skin.php 파일에서 for ($i=0; $i<count($list); $i++) { 바로 아랫줄에 이렇게 추가합니다.[code]if (!$is_admin && $list[$i]['mb_id'] != 'admin') {
    $list[$i]['name'] = substr($list[$i]['wr_name'],0,-3)."*";
}[/code]
view.skin.php 파일에서는 <?php echo $view['name'] ?> 부분을 이렇게 수정.[code]<?php echo substr($view['wr_name'],0,-3)."*"; ?>[/code]
관리자로 로그인했을 때는 풀 네임으로 보이게 하려면
위 내용 대신에 view.skin.php 파일 상단에 이렇게 넣어주면 됩니다.[code]if (!$is_admin && $view['mb_id'] != 'admin') {
    $view['name'] = substr($view['wr_name'],0,-3)."*";
}[/code]
view.skin.php 파일은 아래에 있는 다른 모든 팁들도 마찬가지 방식으로 하면 됩니다.
$list[$i]부분을 $view로 변경하면 됩니다.
관리자로 로그인하면 모두 보이지만 작성자가 관리자일 때를 제외하고 이름 마지막 글자가 '*​'로 표시됩니다.

1-2. 이름 뒷자리 두글자를 ** 로 표시하는 방법
list.skin.php 파일에서 for ($i=0; $i<count($list); $i++) { 바로 아랫줄에 이렇게 추가합니다.[code]if (!$is_admin && $list[$i]['mb_id'] != 'admin') {
    $list[$i]['name'] = substr($list[$i]['wr_name'], 0, -6).'**';
}[/code]
1-3. 첫 글자만 보이고 나머지 글자는 모두 별표 처리
list.skin.php 파일에서 for ($i=0; $i<count($list); $i++) { 바로 아랫줄에 이렇게 추가합니다.[code]if (!$is_admin && $list[$i]['mb_id'] != 'admin') {
    $list[$i]['name'] = preg_replace('/(?<=.{1})./u','*',$list[$i]['wr_name']);
}[/code]
2. 한글 이름 중간 한자리를 '○'으로 숨기는 방법
이 방법을 사용하면 중간 원하는 자리를 골라서 해줄 수 있고 전체 글자 수도 원하는 대로 할 수 있습니다.
list.skin.php 파일에서 for ($i=0; $i<count($list); $i++) { 바로 아랫줄에 이렇게 추가합니다.​ [code]if (!$is_admin && $list[$i]['mb_id'] != 'admin') {
    $name_x ='○';
    $name_a = mb_substr($list[$i]['wr_name'],0,1,"UTF-8");
    $name_b = mb_substr($list[$i]['wr_name'],2,10,"UTF-8");
    $list[$i]['name'] = $name_a.$name_x.$name_b;
}[/code]
관리자로 로그인하면 모두 보이지만 작성자가 관리자일 때를 제외하고 이름 중간이 '○​'으로 표시됩니다.
간단하게 이런 방법도 있네요.

<?php echo preg_replace("/(^.)./u", "$1○", $list[$i]['wr_name']); ?>
위 내용을 for 문 안에 넣는다면 이렇게..[code]if (!$is_admin && $list[$i]['mb_id'] != 'admin') {
    $list[$i]['name'] = preg_replace("/(^.)./u", "$1○", $list[$i]['wr_name']);
}[/code]
응용해서 이름이 3자 이상일 경우 3자로 끊어서 표시할 땐[code]<?php echo mb_substr(preg_replace("/(^.)./u", "$1○", $list[$i]['wr_name']),0,3,"UTF-8"); ?>[/code]
3. 여분 필드 wr_1 에 전화번호를 010-1234-5678 형식으로 입력받았을 때

3-1. 맨 뒤 4자리를 ****로 표시하는 방법
list.skin.php 파일에서 for ($i=0; $i<count($list); $i++) { 바로 아랫줄에 이렇게 추가합니다.[code]if (!$is_admin && $list[$i]['wr_1']) {
    $list[$i]['wr_1'] = substr($list[$i]['wr_1'],0,-4)."****";
}[/code]
3-2. 중간 자리를 ****로 표시하는 방법[code]if (!$is_admin && $list[$i]['wr_1']) {
    $list[$i]['wr_1'] = preg_replace('/-(\d+)-/e',"'-'.str_repeat('*',strlen('\\1')).'-'",$list[$i]['wr_1']);
}[/code]관리자로 로그인하면 모두 보이지만 그 이외의 상태일 때는 연락처 중간이나 뒷자리가 ****로 표시됩니다.

댓글목록

등록된 댓글이 없습니다.


자료 목록
번호 제목 날짜
173
🫧
04-17
172
🫧
04-17
171
🫧
04-16
170
🫧
04-15
169
🫧
04-15
168
🫧
04-13
167
🫧
04-13
166
🫧
04-13
165
🫧
04-13
📖
🫧
04-13
163
🫧
04-10
162
🫧
04-10
161
🫧
04-09
160
🫧
04-09
159
🫧
04-08

🔍 검색

회사소개 개인정보처리방침 서비스이용약관
Copyright © rainbowgarden.shop All rights reserved.