PHP에서 선행 0으로 숫자의 형식을 올바르게 지정하는 방법
Ralfh Bryan Perez
2023년1월30일
- 문자열을 사용하여 숫자 대체
-
PHP에서 선행 0을 추가하는
substr()
-
PHP에서 선행 0을 추가하는
printf()
/sprintf()
-
PHP에서 선행 0을 추가하는
str_pad()
PHP에서 선행 0이있는 숫자 또는 정수는 예상치 못한 결과로 다른 값을 가질 수 있습니다.
예:
$number = 0987654321; //this is an octal number
$number = 0x987654321 // this is a hexadecimal number
$number = 0b0987654321 // this is a binary number
숫자가 ‘자연적인’의미를 잃지 않도록하기 위해 숫자 대신 문자열을 사용하거나substr
및 printf()
/ sprintf()
및 str_pad
와 같은 다른 기능을 사용하여 시도하는 몇 가지 방법이 있습니다.
문자열을 사용하여 숫자 대체
가장 쉬운 방법; 단순히 숫자 대신 문자열을 사용하십시오.
$number = "0987654321";
** 사용시기 : **
- 필요한 출력 길이가 없습니다.
- 항상 앞에 0이 필요한 숫자에는 예외가 없습니다.
PHP에서 선행 0을 추가하는substr()
이 방법은 문자열 길이가 초과 될 때 왼쪽에서 숫자를 자릅니다.
start
가 음수이면, 반환 된 문자열은string
의 끝에서start
-th 문자부터 시작합니다.
예:
$number = 98765;
$length = 10;
$string = substr(str_repeat(0, $length).$number, - $length);
//output: 0000098765
** 사용시기 : **
- 고정 길이의 출력 문자열이있을 때.
- 문자열이 길이보다 작 으면 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 -문자열의 오른쪽에 패드 |