그누보드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 쿼리를 사용해 자릿수를 나누고 하이픈을 결합하여 일괄 변환할 수 있습니다.
- A. phpMyAdmin 등의 데이터베이스 관리 툴에서
- Q. 010 형식이 아닌 0505 번호나 해외 번호도 이 함수로 처리되나요?
- A. 그누보드 내장 함수
hyphen_hp_number()는 3자리, 3~4자리, 4자리 패턴을 기준으로 정규식을 처리하므로, 자릿수가 다른 번호의 경우 형식이 올바르게 쪼개지지 않을 수 있어 별도의 예외 처리가 필요합니다.
- A. 그누보드 내장 함수
참고자료
기타 참고자료
- 이전글그누보드5 최신글 스킨 적용 및 함수 사용법 26.09.30
- 다음글그누보드 게시판 추가 필드 활용: 전화번호 분할 입력 및 저장 구현 26.09.28
댓글목록
등록된 댓글이 없습니다.