티스토리 뷰

반응형

PHP로 웹 개발을 하다 보면 숫자를 특정 형식으로 출력해야 할 때가 있습니다. 특히 페이지 번호와 같은 숫자를 출력할 때, 한 자리 숫자를 두 자리로 맞추어야 하는 경우가 빈번합니다. 예를 들어, 1은 01로, 10은 그대로 10으로 출력하고 싶을 때가 있습니다. 이번 글에서는 이를 간단하고 효과적으로 처리하는 방법을 알아보겠습니다.

 

상황 예시

어떤 프로젝트에서 페이지 번호를 표시할 때, 다음과 같은 형식이 요구된다고 가정해 보겠습니다:

<?= $lotNum ?>-<?= $page ?>

여기서 $page가 1일 때는 01로, 10 이상일 때는 그대로 출력되기를 원한다고 해봅시다. 예를 들어, lotNum이 A12이고 page가 1이면 A12-01로, page가 100이면 A12-100으로 출력되어야 합니다.

해결 방법

이 문제는 PHP의 str_pad 함수를 사용하여 간단히 해결할 수 있습니다. 다음과 같이 작성하면 요구 사항에 맞는 형식을 손쉽게 구현할 수 있습니다:

<?= $lotNum ?>-<?= str_pad($page, 2, "0", STR_PAD_LEFT) ?>

이 코드에서 str_pad 함수는 $page 값을 최소 2자리로 맞추고, 필요한 경우 왼쪽에 0을 추가합니다. 각 매개변수의 의미는 아래와 같습니다:

  • $page: 패딩을 적용할 원본 값입니다.
  • 2: 출력될 문자열의 최소 길이를 지정합니다. 여기서는 2자리로 설정합니다.
  • "0": 패딩에 사용할 문자입니다. 여기서는 0을 추가합니다.
  • STR_PAD_LEFT: 문자열의 왼쪽에 패딩을 추가하도록 지정합니다.

작동 원리

str_pad 함수는 $page가 다음과 같은 값일 때 다음과 같이 출력합니다:

$page 값출력 결과

1 01
9 09
10 10
100 100

예제 코드

이제 위 코드를 활용하여 실제로 $lotNum과 $page를 결합하는 예제를 만들어 보겠습니다:

<?php
$lotNum = "A12"; // 로트 번호
$page = 1;        // 페이지 번호

// 출력
echo "$lotNum-" . str_pad($page, 2, "0", STR_PAD_LEFT);
?>

위 코드를 실행하면 $page가 1일 때 A12-01이 출력됩니다. $page 값이 100일 경우에는 A12-100이 출력됩니다.

실용적인 활용

이 방식은 페이지 번호뿐만 아니라, 기타 숫자 형식을 맞추어야 할 때도 유용합니다. 예를 들어, 날짜의 월이나 일을 표시할 때도 활용할 수 있습니다:

<?php
$month = 5;
$day = 3;

// 날짜 형식으로 출력
echo str_pad($month, 2, "0", STR_PAD_LEFT) . "-" . str_pad($day, 2, "0", STR_PAD_LEFT);
?>

위 코드는 05-03과 같은 결과를 출력합니다. 이처럼 str_pad는 숫자의 자릿수를 조정하거나 특정 형식을 유지해야 하는 모든 경우에 매우 간편하게 사용할 수 있습니다.

마치며

숫자의 형식을 맞추는 작업은 간단해 보이지만, 실제로는 코드의 완성도와 가독성을 높이는 중요한 부분입니다. PHP의 str_pad 함수는 이런 요구 사항을 간단히 해결할 수 있는 강력한 도구입니다. 위의 예제와 같이 한 자리 숫자를 두 자리로 맞추는 문제를 해결하며, 프로젝트에서 더 나은 사용자 경험을 제공할 수 있을 것입니다.

작은 디테일이 큰 차이를 만들 수 있다는 점, 잊지 말고 활용해 보세요!

반응형
댓글