PHP에서 전화 번호 형식 지정

Minahil Noor 2023년1월30일
  1. preg_match()함수를 사용하여 PHP에서 전화 번호 형식 지정
  2. sprintf()함수를 사용하여 PHP에서 전화 번호 형식 지정
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_CAPTUREPREG_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.

관련 문장 - PHP Regex