PHP에서 전화 번호 형식 지정
이 기사에서는 PHP를 사용하여 전화 번호 형식을 지정하는 다양한 방법에 대해 설명합니다. 전화 번호는 ‘+13335092344’에서 ‘333-509-2344’로 형식을 지정합니다.
preg_match()
함수를 사용하여 PHP에서 전화 번호 형식 지정
내장 함수 preg_match()
를 사용하여 전화 번호 형식을 지정할 수 있습니다. 이 함수는 문자열에서 지정된 패턴을 검색합니다. 이 함수를 사용하기위한 올바른 구문은 다음과 같습니다.
preg_match($pattern, $inputString, $matches, $flag, $offset);
내장 함수preg_match()
에는 5 개의 매개 변수가 있습니다. 매개 변수의 세부 사항은 다음과 같습니다
매개 변수 | 기술 | |
---|---|---|
$pattern |
필수 | 주어진 문자열에서 확인하려는 패턴입니다. |
$inputString |
필수 | 주어진 패턴을 검색하려는 문자열입니다. |
$matches |
선택 과목 | 이 매개 변수가 제공되면 함수는 일치 프로세스의 결과를 여기에 저장합니다. |
$flags |
선택 과목 | 이 매개 변수에는 PREG_OFFSET_CAPTURE 및 PREG_UNMATCHED_AS_NULL 의 두 가지 옵션이 있습니다. 설명은 여기에서 읽을 수 있습니다. |
$offset |
선택 과목 | 매칭 프로세스를 시작할 위치의 기능을 알려줍니다. 일반적으로 검색은 처음부터 시작됩니다. |
이 함수는 부울 변수를 반환합니다. 주어진 패턴이 존재하면 참을 반환합니다. 숫자를 추출한 후 필요한 형식으로 인쇄합니다.
아래 프로그램은 PHP preg_match()
함수를 사용하여 전화 번호를 포맷하는 방법을 보여줍니다.
<?php
$number = '+12333509234';
echo("The original number is $number.\n");
if( preg_match( '/^\+\d(\d{3})(\d{3})(\d{4})$/', $number, $matches ) )
{
$result = $matches[1] . '-' .$matches[2] . '-' . $matches[3];
}
echo("The formatted number is $result.");
?>
문자열에서 숫자를 추출하기 위해/^\+\d(\d{3})(\d{3})(\d{4})$/
패턴을 사용했습니다. 이 패턴에 대한 설명은 다음과 같습니다.
^
는 문자열의 시작 부분과 일치하는 기호입니다.\+
는 문자열의+
와 일치합니다.+
는 이전 패턴의 한 번 이상 일치하는 PHP의 특수 문자입니다. 따라서이 특수 문자를 이스케이프하려면+
앞에\
를 추가해야합니다.\d
는 0-9 사이의 한 자리 숫자를 일치시키는 데 사용됩니다.\d{3}
는 3 개의 연속 된 숫자와 일치 함을 의미합니다.
출력:
The original number is +12333509234.
The formatted number is 233-350-9234.
sprintf()
함수를 사용하여 PHP에서 전화 번호 형식 지정
sprintf()
함수를 사용하여 PHP에서 전화 번호 형식을 지정할 수도 있습니다. 이 함수는 문자열을 형식화하기 위해 여러 형식화 패턴을 제공합니다. 여러 문자열에서substr()
함수를 사용하여 숫자를 추출합니다. 그런 다음sprintf()
함수를 사용하여 이러한 문자열을 필요한 형식으로 결합합니다. 이 함수를 사용하기위한 올바른 구문은 다음과 같습니다.
sprintf($formatString, $string1, $string2, ..., $stringN)
sprintf()
함수는 N + 1 매개 변수를받습니다. 매개 변수의 세부 사항은 다음과 같습니다
매개 변수 | 기술 | |
---|---|---|
$formatString |
필수 | 주어진 문자열에 적용될 형식입니다. |
$string1 ,$string2 ,$stringN |
필수 | 포맷하고 싶은 문자열입니다. 하나 이상의 문자열이 필수입니다. |
이 함수는 형식화 된 문자열을 반환합니다. %s-%s-%s
형식을 사용하여 숫자 문자열을 함께 결합합니다. 두 문자열을 함께 결합하는 프로그램은 다음과 같습니다.
<?php
$number = '+12333509234';
echo("The original number is $number.\n");
$result = sprintf("%s-%s-%s",
substr($number, 2, 3),
substr($number, 5, 3),
substr($number, 8));
echo("The formatted number is $result.");
?>
출력:
The original number is +12333509234.
The formatted number is 233-350-9234.