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

Ralfh Bryan Perez 2023년1월30일 2020년6월15일 PHP PHP Function
  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

  • 여러 개의 리턴을 가진 함수를 크레이트하는 방법