PHP에서 선행 0으로 숫자의 형식을 올바르게 지정하는 방법

Ralfh Bryan Perez 2023년1월30일
  1. 문자열을 사용하여 숫자 대체
  2. PHP에서 선행 0을 추가하는substr()
  3. PHP에서 선행 0을 추가하는printf()/sprintf()
  4. PHP에서 선행 0을 추가하는str_pad()
PHP에서 선행 0으로 숫자의 형식을 올바르게 지정하는 방법

PHP에서 선행 0이있는 숫자 또는 정수는 예상치 못한 결과로 다른 값을 가질 수 있습니다.

예:

$number = 0987654321; //this is an octal number
$number = 0x987654321 // this is a hexadecimal number
$number = 0b0987654321 // this is a binary number

숫자가 ‘자연적인’의미를 잃지 않도록하기 위해 숫자 대신 문자열을 사용하거나substrprintf()/ sprintf()str_pad와 같은 다른 기능을 사용하여 시도하는 몇 가지 방법이 있습니다.

문자열을 사용하여 숫자 대체

가장 쉬운 방법; 단순히 숫자 대신 문자열을 사용하십시오.

$number = "0987654321";

** 사용시기 : **

  1. 필요한 출력 길이가 없습니다.
  2. 항상 앞에 0이 필요한 숫자에는 예외가 없습니다.

PHP에서 선행 0을 추가하는substr()

이 방법은 문자열 길이가 초과 될 때 왼쪽에서 숫자를 자릅니다.

start가 음수이면, 반환 된 문자열은string의 끝에서start-th 문자부터 시작합니다.

예:

$number = 98765;
$length = 10;
$string = substr(str_repeat(0, $length).$number, - $length);

//output: 0000098765

** 사용시기 : **

  1. 고정 길이의 출력 문자열이있을 때.
  2. 문자열이 길이보다 작 으면 0을 추가하십시오.

PHP에서 선행 0을 추가하는printf()/sprintf()

입력이 길이보다 작을 때 고정 길이의 출력을 채우고 입력이 클 때 문자열을 반환합니다.

예:

$length = 10;
$char = 0;
$type = 'd';
$format = "%{$char}{$length}{$type}"; // or "$010d";

//print and echo
printf($format, 987654321);

//store to a variable
$newFormat = sprintf($format, 987654321);

// output: 0987654321

이 예에서 고정 길이는 10으로 설정되고 입력 길이는 9이므로printf()/sprintf를 사용하는 경우 왼쪽에 0을 추가합니다.

**sprintf()매개 변수 값 **

** 매개 변수 ** 기술
format(필수) 문자열 및 변수 형식 지정 방법
가능한 형식 값 :
%%-백분율 기호
%b-이진
%c-참조되는 문자 ASCII
%d-10 진수 (음수 또는 양수)
%e-소문자 과학 표기법
%E-대문자 과학 표기법
%u- 부호없는 10 진수
%f-부동 수 (로컬 설정 인식)
%F-부동 수 (로컬 설정 인식하지 않음)
%g-%의 짧은 버전 e%f
%G-%E%F
%o의 짧은 버전-Octal
%s-문자열
%x-16 진 (소문자)
%X-16 진 (대문자)
arg1 (필수) 첫 번째 % 기호에 삽입
arg2 (선택 사항) 두 번째 % 기호에 삽입
argg++(선택 사항) 세 번째, 네 번째 등에 삽입됩니다. % 기호

노트:

  • 입력 문자열 길이가 패드 길이보다 크거나 같으면 문자열 만 반환하며 문자는 생략되지 않습니다.
  • 패딩은 입력 길이가 패딩 길이보다 작은 경우에만 추가됩니다.

PHP에서 선행 0을 추가하는str_pad()

이 메소드는 문자열을 지정된 길이의 새로운 길이로 채 웁니다.

예:

$length = 7;
$string = "12345";
echo str_pad($string,$length,"0", STR_PAD_LEFT);
//output: 0012345

위 예제는 지정된 길이 (이 경우7)와 일치 할 때까지 지정된 문자열에0을 추가합니다.

**str_pad()파라미터 목록 **

모수 기술
string 채울 줄
length 문자열의 새 길이를 지정합니다. ** 참고 : ** 값이 문자열 길이보다 작 으면 아무 일도 일어나지 않습니다.
pad_string 패딩에 사용할 문자열을 지정합니다. 기본값은 공백입니다.
pad_type 문자열을 채울 위치를 지정합니다.
허용되는 값 :
STR_PAD_BOTH-문자열의 양쪽을 채 웁니다.
STR_PAD_LEFT-문자열의 왼쪽을 채 웁니다
STR_PAD_RIGHT-문자열의 오른쪽에 패드

관련 문장 - PHP Function