PHP 버전
4.0.1+
str_pad(주어진_문자열, 지정한_길이[, 채우길_원하는_문자열[, 채우는_위치]]);
/* str_pad(주어진_문자열, 지정한_길이[, 채우길_원하는_문자열[, 채우는_위치]]); */

$str = 'hello';  // 주어진 문자열(문자열의 길이: 5)

/////////////////////////////////////////////////

// 지정한 길이: 10, 채우길 원하는 문자열: "*", 채우는_위치: 왼쪽
echo str_pad($str, 10, '*', STR_PAD_LEFT); // 출력: '*****hello'

// 지정한 길이: 10, 채우길 원하는 문자열: "*", 채우는_위치: 오른쪽
echo str_pad($str, 10, '*', STR_PAD_RIGHT); // 출력: 'hello*****'

// 지정한 길이: 10, 채우길 원하는 문자열: "*", 채우는_위치: 양쪽
echo str_pad($str, 10, '*', STR_PAD_BOTH); // 출력: '**hello***'

// 지정한 길이: 10, 채우길 원하는 문자열: 공백 문자 (" ", U+0020), 채우는_위치: 왼쪽
echo str_pad($str, 10, ' ', STR_PAD_LEFT); // 출력: '     hello'

// 지정한 길이: 10, 채우길 원하는 문자열: '*@', 채우는_위치: 왼쪽
echo str_pad($str, 10, '*@', STR_PAD_LEFT); // 출력: '*@*@*hello'

// 지정한 길이: 4, 채우길 원하는 문자열: "*", 채우는_위치: 왼쪽
// 지정한 길이가 문자열 길이보다 작으면 주어진 문자열이 그대로 반환됩니다.
echo str_pad($str, 4, '*', STR_PAD_LEFT); // 출력: 'hello'
str_pad(
    string $string,
    int $length,
    string $pad_string = " ",
    int $pad_type = STR_PAD_RIGHT
): string
str_pad('hello', 10);
// 'hello     '
// $pad_string을 생략하면 공백으로 채웁니다.
// $pad_type을 생략하면 오른쪽을 채웁니다.

str_pad('hello', 10, '0', STR_PAD_LEFT);
// '00000hello'
// 왼쪽에서부터 $pad_string('0')을 반복하여 목표 길이를 맞춥니다.

str_pad('hello', 10, '123', STR_PAD_LEFT);
// '123123hello' → X
// 실제 결과: '12312hello'
// $pad_string은 필요한 길이만큼만 잘려서 사용됩니다.

str_pad('hello', 4, '*', STR_PAD_LEFT);
// 'hello'
// 지정한 길이가 문자열 길이보다 작으면 주어진 문자열이 그대로 반환됩니다.
$str = 'hello'; // 주어진 문자열(문자열의 길이: 5)

// 지정한 길이: 10, 채우길 원하는 문자열: "*@"
$result_str = str_pad($str, 10, '*@', STR_PAD_LEFT);
echo $result_str; // 출력: '*@*@*hello'
$str = 'hello'; // 주어진 문자열(문자열의 길이: 5)

// 지정한 길이: 10, 채우길 원하는 문자열을 지정하지 않음
$result_str = str_pad($str, 10);
echo $result_str; // 출력: 'hello     '
// 주문 번호를 항상 6자리로 맞추기
$order_id = '351';
echo str_pad($order_id, 6, '0', STR_PAD_LEFT); 
// 출력: '000351'
// 제품 리스트 예제
$items = [
    [ 'name' => 'Coffee', 'price' => 4500 ],
    [ 'name' => 'Donut',  'price' => 2000 ],
    [ 'name' => 'Latte',  'price' => 5000 ]
];

// 컬럼 너비 지정 (제품명 10자, 가격 5자)
$nameWidth  = 10;
$priceWidth = 5;
$fillChar   = '.';

echo '--- PRODUCT LIST ---' . "\n";

foreach ($items as $item) {
    // 제품명: 뒤쪽을 '.'으로 채워 10자 확보
    $paddedName = str_pad($item['name'], $nameWidth, $fillChar, STR_PAD_RIGHT);

    // 가격: 앞쪽을 공백으로 채워 5자 확보
    $paddedPrice = str_pad((string)$item['price'], $priceWidth, ' ', STR_PAD_LEFT);

    // 출력: "Coffee.... 4500원" 형태
    echo $paddedName . ' ' . $paddedPrice . '원' . "\n";
}

/*
출력:
--- PRODUCT LIST ---
Coffee....  4500원
Donut.....  2000원
Latte.....  5000원
*/