str_pad — 문자열을 지정한 길이로 채우기

str_pad — 문자열을 지정한 길이로 채우기

문자열의 길이를 맞추기 위해 왼쪽이나 오른쪽, 또는 양쪽에 특정 문자를 채워야 할 때가 있어요. str_pad()는 문자열 string을 지정한 길이로 왼쪽·오른쪽·양쪽에 패딩해서 돌려주는 함수예요. 선택 인자 pad_string을 주지 않으면 공백으로 채우고, 주면 pad_string의 문자들로 제한까지 채워요.

출처: str_pad

본문

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

시그니처

str_pad(
    string $string,
    int $length,
    string $pad_string = " ",
    int $pad_type = STR_PAD_RIGHT
): string

매개변수

  • string — 입력 문자열이에요.
  • length — 최종 패딩된 문자열의 원하는 길이예요. length가 음수이거나 입력 문자열의 길이보다 작거나 같으면 패딩이 일어나지 않고 string이 그대로 반환돼요.
  • pad_string — 패딩에 쓸 문자열이에요. 주의: 필요한 패딩 문자 수가 pad_string의 길이로 나누어떨어지지 않으면 pad_string이 잘릴 수 있어요.
  • pad_type — 선택 인자로, STR_PAD_RIGHT, STR_PAD_LEFT, STR_PAD_BOTH 중 하나예요. 지정하지 않으면 STR_PAD_RIGHT로 간주돼요.

반환 값

패딩된 문자열을 반환해요.

기본 예제

$input = "Alien";
echo str_pad($input, 10), PHP_EOL;          // "Alien     "
echo str_pad($input, 10, "-=", STR_PAD_LEFT), PHP_EOL;  // "-=-=-Alien"
echo str_pad($input, 10, "_", STR_PAD_BOTH), PHP_EOL;   // "__Alien___"
echo str_pad($input, 6, "___"), PHP_EOL;    // "Alien_"
echo str_pad($input, 3, "*"), PHP_EOL;      // "Alien" (길이보다 짧으면 그대로)

주의할 점

STR_PAD_BOTH를 쓸 때 패딩 문자 수가 정확히 나누어떨어지지 않으면 오른쪽 패딩이 더 많아져요. 예를 들어 str_pad("input", 10, "pp", STR_PAD_BOTH)ppinputppp가 돼요.

또한 str_pad()strlen()처럼 한 문자 == 1바이트로 가정하기 때문에 멀티바이트 문자를 올바르게 처리하지 못해요. 한글 같은 멀티바이트 문자가 섞이면 결과 길이가 예상보다 짧아질 수 있어요. 멀티바이트를 제대로 패딩하려면 mb_str_pad()(PHP 8.3+)를 사용하거나, mb_strlen()·mb_substr()로 직접 구현해야 해요.

더 알아보기

멀티바이트 문자열을 지정한 길이로 채우는 mb_str_pad() 문서를 함께 확인해 보세요. 정수 앞에 0을 붙이는 등 자릿수를 맞출 때도 자주 쓰여요.