728x90
어렵거나 그런건 아니지만 생각보다 웹사이트를 코딩하는 도중 많이 사용하게 되더라구요.
보통 값을 받아옴에 따라 다르지만 처음부터 - 를 넣을때도 있고 input을 3개로 나눠서 입력받으면서 -를 넣는 경우도 있죠
/* 핸드폰번호에 - 추가 */
$phone_num2 = '010,1234,1234';
$phone2 = explode(',',$phone_num2);
asd($phone2); /* 배열 0 -> 010 , 1 -> 1234 , 2 -> 1234*/
$phone2 = implode('-', $phone2);
asd($phone2); /* 010-1234-1234*/
/* 핸드폰 번호 사이에 구분값이 있는경우 간단하게 explode 로 나눈 후 다시 pmplode로 합칠 수 있다.. */
핸드폰번호의 구분기호나 공백이 있는경우 explode로 배열로 변경
[0] -> 010
[1] -> 1234
[2] -> 1234
로 생성 후 다시 합쳐주면서 - 를 사용하면 간단합니다.
implode('구분기호', '합쳐야할 배열');
로 간단하게 만들 수 있습니다.
문제는 구분기호가 없이 그냥 있는 전화번호였는데 .. 자바스크립트처럼 3글자씩 자르고 하기는 너무 귀찮아서 함수가 있어야 편하겠다 .. 싶더라구요.
/* 아무것도 없는 경우 */
$phone_num = '01012341234';
$phone = explode('',$phone_num);
asd($phone); /* 빈 값 -> 해당값이 구분값이 없는지 확인한다. 예를들어 - 가 있거나 없는경우 - 를 넣어놓고 배열이 있다면 그대로 사용하면 됨 */
if(!$phone){ /* 빈값일 시 실행 */
$phone = format_phone($phone_num); /* 함수를 돌림*/
}
asd($phone); /* 010-1234-1234*/
/* class 파일을 생성해 format_phone 를 생성하면 편하게 사용 가능*/
function format_phone($phone){
$phone = preg_replace("/[^0-9]/", "", $phone); /* 0~9 인 숫자만을 선택하는 정규식.*/
$length = strlen($phone); /* 해당 전화번호의 길이를 체크 (핸드폰번호의 3,3,4 / 3,4,4 를 구분) */
switch ($length){
case 11 : /* 전화번호의 길이를 구분해 값을 넣어준다. */
return preg_replace("/([0-9]{3})([0-9]{4})([0-9]{4})/", "$1-$2-$3", $phone);
break;
case 10:
return preg_replace("/([0-9]{3})([0-9]{3})([0-9]{4})/", "$1-$2-$3", $phone);
break;
default :
return $phone;
break;
}
}
풀어보면 아주 간단한거던데 처음할때는 어찌나 어렵던지 ...
-가 있는 경우와 없는경우를 체크해야하니 어떤 값을 받아오냐에 따라 explode는 생략해도 괜찮겠죠?
만약 사용하게 된다면 if문에 else문에 implode를 넣어서 적용하면 완료!
728x90
'개인 공부' 카테고리의 다른 글
[php] 기본적인 함수 사용(strlen, number_fomat,substr) (0) | 2022.11.30 |
---|---|
[php] 기본적인 함수 사용_2 (timestamp,strotitome,date) (0) | 2022.11.22 |
[php] 기본적인 함수 사용(explod,implod,isset,in_array) (0) | 2022.11.21 |
[php] 정규식 사용 (0) | 2022.11.18 |
[JQuery] 배열안에 있는 시스템 언어 검색(간단한 includes) (0) | 2022.11.16 |