BOARD

강좌·기초

그누보드5 휴대폰 번호 입력 시 하이픈(-) 자동 추가 및 형식 변환 방법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 19회 작성일 26-09-29 18:10

본문

그누보드5 휴대폰 번호 입력 시 하이픈(-) 자동 추가 및 형식 변환 방법

그누보드5 운영자와 개발자가 게시판 여분필드나 회원 정보 입력 시 제각각 입력되는 휴대폰 번호 형식을 통일할 수 있도록, 내장 함수와 스킨 파일을 활용해 하이픈(-)을 자동으로 추가하고 저장·출력하는 방법을 안내합니다.

그누보드5 휴대폰 번호 하이픈 자동 추가 함수 위치

그누보드5에서 휴대폰 번호의 숫자만 추출한 뒤 중간에 하이픈(-)을 자동으로 추가해 형식을 통일하는 내장 함수는 lib/common.lib.php 파일에 정의되어 있습니다.

함수 정의 내용

lib/common.lib.php 파일 내에 정의된 hyphen_hp_number 함수의 실제 구조는 다음과 같습니다.

// 휴대폰번호의 숫자만 취한 후 중간에 하이픈(-)을 넣는다.
function hyphen_hp_number($hp) {
 $hp = preg_replace("/[^0-9]/", "", $hp);
 return preg_replace("/([0-9]{3})([0-9]{3,4})([0-9]{4})$/", "\\1-\\2-\\3", $hp);
}

주의사항 및 예외

  • 0505 번호나 해외 번호 등 010 형식이 아닌 자릿수가 다른 번호에 해당 함수를 그대로 적용할 경우 자릿수가 올바르게 쪼개지지 않을 수 있으므로 적용 환경을 확인해야 합니다.

게시판 여분필드 휴대폰 번호 하이픈 자동 저장 방법

그누보드5는 휴대폰 번호의 숫자만 추출한 뒤 중간에 하이픈(-)을 자동으로 넣어주는 내장 함수 hyphen_hp_number()를 제공합니다. 이를 활용해 사용자가 하이픈 없이 숫자로만 입력하거나 하이픈을 섞어 입력하더라도 데이터베이스에 일괄된 형식으로 저장할 수 있습니다.

1. 적용 방법

해당 게시판 스킨 폴더 안에 write_update.skin.php 파일을 생성하고 아래 코드를 추가합니다. 예를 들어 여분필드 1(wr_1)을 통해 휴대폰 번호를 입력받고 있다면 다음과 같이 작성합니다.

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

$wr_1 = hyphen_hp_number($wr_1);
sql_query(" update $write_table set wr_1 = '$wr_1' where wr_id = '$wr_id' ");
?>

2. 내장 함수 동작 원리

그누보드의 lib/common.lib.php 파일에 정의된 hyphen_hp_number() 함수는 다음과 같이 동작합니다.

  • 입력된 값에서 숫자를 제외한 문자를 제거합니다 (/[^0-9]/).
  • 정규식을 이용해 3자리-3~4자리-4자리 숫자로 조합하여 하이픈을 포함한 형식으로 반환합니다.

3. 주의사항 및 예외

  • 해외 번호 등 일반적인 010 형식이 아닌 번호가 입력될 경우의 처리 방식에 대해서는 추가적인 예외 처리가 필요할 수 있습니다.

출력 시점에 휴대폰 번호 하이픈 적용 방법

데이터베이스 구조를 직접 수정하지 않고 목록(list.skin.php)이나 본문(view.skin.php) 출력 시점에 그누보드 내장 함수 hyphen_hp_number()를 적용하여 하이픈이 포함된 형식으로 변환할 수 있습니다.

1. 목록 페이지 (list.skin.php) 수정

목록 페이지 파일에서 여분필드(예: wr_1) 데이터를 출력할 때 기존 코드 대신 내장 함수를 감싸서 출력합니다.

  • 기존 코드 예시
<?php echo $list[$i]['wr_1']?>
  • 변경 코드 예시
<?php echo hyphen_hp_number($list[$i]['wr_1']);?>

2. 본문 페이지 (view.skin.php) 수정

본문 페이지 파일에서 원하는 출력 위치에 내장 함수를 적용한 코드를 삽입합니다.

  • 적용 코드 예시
<?php echo hyphen_hp_number($view['wr_1']);?>

적용 범위 및 주의사항 그누보드5에 내장된 hyphen_hp_number() 함수는 lib/common.lib.php 파일에 정의되어 있으며, 입력된 값에서 숫자를 추출한 뒤 3자리, 3~4자리, 4자리 구조로 하이픈을 조합합니다. 따라서 010 형식이 아닌 해외 번호나 자릿수가 다른 번호의 경우 형식이 다르게 처리될 수 있는 점을 유의해야 합니다.

데이터베이스 차원에서 휴대폰 번호 일괄 변환하기

이미 하이픈 없이 숫자만으로 저장된 휴대폰 번호 데이터(예: 01012345678)를 MariaDB/MySQL 데이터베이스 차원에서 일괄적으로 하이픈 형식으로 변환하려면 substring과 concat 함수를 조합하여 SQL 쿼리를 실행할 수 있습니다.

1. SQL 변환 쿼리 구조

데이터베이스 관리 툴(예: phpMyAdmin 등)에서 다음과 같은 형식의 쿼리를 활용해 번호 자릿수를 쪼개고 구분자를 넣어서 합칠 수 있습니다.

select concat(substring("핸드폰번호", 1, 3),"-",substring("핸드폰번호", 4, 4),"-",substring("핸드폰번호", 8, 4))
  • substring 함수로 핸드폰 번호 문자열을 자리별로 분할하고, concat 함수를 통해 중간에 하이픈(-) 구분자를 넣어서 합치는 방식입니다.
  • 실제 테이블과 필드명에 적용할 때는 하이픈이 포함되지 않은 대상 데이터(where 조건 등)를 먼저 확인한 후 신중하게 쿼리를 작성해야 합니다.

그누보드5 휴대폰 번호 하이픈(-) 자동 추가 및 형식 변환 방법

그누보드5에서는 휴대폰 번호 입력 시 하이픈(-)을 포함하거나 숫자만 입력하는 등 사용자마다 형식이 다른 문제를 해결하기 위해 내장 함수를 제공합니다.

1. 내장 함수 확인

그누보드5는 휴대폰 번호의 숫자만 추출한 뒤 중간에 하이픈을 넣는 함수를 미리 내장하고 있습니다.

  • 정의 위치: lib/common.lib.php
  • 함수명: hyphen_hp_number($hp)
function hyphen_hp_number($hp) {
 $hp = preg_replace("/[^0-9]/", "", $hp);
 return preg_replace("/([0-9]{3})([0-9]{3,4})([0-9]{4})$/", "\\1-\\2-\\3", $hp);
}

2. 입력 시점에 하이픈을 포함하여 저장하는 방법

여분필드(예: wr_1) 등으로 휴대폰 번호를 입력받는 경우, 게시판 스킨 폴더 내에 write_update.skin.php 파일을 생성하여 저장 전 값을 변환할 수 있습니다.

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
$wr_1 = hyphen_hp_number($wr_1);
sql_query(" update $write_table set wr_1 = '$wr_1' where wr_id = '$wr_id' ");
?>

3. 출력 시점에만 하이픈을 적용하여 보여주는 방법

데이터베이스를 직접 수정하지 않고 화면에 출력할 때만 형식을 통일하려면 스킨 파일을 수정합니다.

  • 목록 페이지 (list.skin.php):<?php echo $list[$i]['wr_1']?> 대신 아래 코드를 사용합니다.
    <?php echo hyphen_hp_number($list[$i]['wr_1']);?>
  • 본문 페이지 (view.skin.php):원하는 위치에 아래 코드를 추가합니다.
    <?php echo hyphen_hp_number($view['wr_1']);?>

예외 및 주의사항

  • 0505 같은 번호나 일반전화 등 010 형식이 아닌 번호에 hyphen_hp_number 함수를 그대로 사용할 경우 자릿수가 올바르게 표시되지 않을 수 있다는 사례가 있으므로 대상 번호 형식을 확인해야 합니다.

상황별 안내

  • 내 상황: 그누보드5 운영 중 사용자들이 휴대폰 번호를 하이픈(-) 없이 또는 제각각 입력하여 형식을 통일하고 싶을 때
  • 선택 기준: 데이터베이스에 저장할 때부터 형식을 변환할지, 아니면 기존 데이터는 유지한 채 출력 시점에만 변환할지 결정
  • 다음 행동:
    • 데이터베이스에 일괄 반영하려면 스킨 폴더에 write_update.skin.php 파일을 생성하고 내장 함수 hyphen_hp_number()를 적용
    • 원본 데이터를 건드리지 않고 화면에만 적용하려면 list.skin.php 또는 view.skin.php 출력 부에 해당 함수를 감싸서 호출

실전 FAQ

  • Q. 이미 하이픈 없이 숫자만 입력된 기존 DB 데이터를 한 번에 바꿀 수 있나요?
    • A. phpMyAdmin 등의 데이터베이스 관리 툴에서 substring과 concat 함수를 조합한 SQL 쿼리를 사용해 자릿수를 나누고 하이픈을 결합하여 일괄 변환할 수 있습니다.
  • Q. 010 형식이 아닌 0505 번호나 해외 번호도 이 함수로 처리되나요?
    • A. 그누보드 내장 함수 hyphen_hp_number()는 3자리, 3~4자리, 4자리 패턴을 기준으로 정규식을 처리하므로, 자릿수가 다른 번호의 경우 형식이 올바르게 쪼개지지 않을 수 있어 별도의 예외 처리가 필요합니다.

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.