현재 위치: > 최신 기사 목록> Sprintf 및 str_pad ()를 사용하여 출력 형식을 완벽하게 제어하십시오.

Sprintf 및 str_pad ()를 사용하여 출력 형식을 완벽하게 제어하십시오.

gitbox 2025-05-02

매일 PHP 프로그래밍에서 테이블 형식 목록, 로깅 형식, 명령 줄 출력 등과 같은 깔끔하게 정렬 된 데이터를 출력해야합니다. 여전히 Echo를 사용하여 수동으로 스플 라이스 공백 또는 탭을 사용하여 정렬을 달성하는 경우 Sprintf ()str_pad ()가 이러한 것들을 쉽게 처리 할 수 ​​있도록 도와줍니다.

1. sprintf () : 출력 포맷을위한 도구

Sprintf ()는 문자열을 형식화하는 데 사용되는 PHP의 함수입니다. 형식 템플릿에 따라 변수를 포맷 할 수 있으며, 이는 숫자와 문자열의 정렬을 제어하는 ​​데 매우 적합합니다.

예 1 : 형식 수치 출력

 $price = 19.9;
$formatted = sprintf("가격:%.2f 원", $price);
echo $formatted; // 산출:가격:19.90 원

Sprintf ()는 출력 정렬 시나리오에서 사용하기에 매우 적합합니다. 예를 들어, 데이터 세트를 출력 할 때 각 열에 대한 고정 너비를 설정할 수 있습니다.

 $data = [
    ['이름', '수량', '가격'],
    ['사과', 10, 2.5],
    ['바나나', 5, 1.3],
    ['주황색', 20, 3.75],
];

foreach ($data as $row) {
    printf("%-10s %-6d %6.2f 원\n", $row[0], $row[1], $row[2]);
}

출력 결과는 균일하며 숫자가 크지 않거나 소수점 자리 수에 상관없이 정렬 된 방식으로 표시 할 수 있습니다.

2. str_pad () : 문자 충전을 쉽게 구현합니다

Sprintf ()는 강력하지만 경우에 따라 문자열을 단순히 정렬하고 왼쪽과 오른쪽으로 채우면 str_pad () 가 편리합니다.

str_pad () 함수 서명 :

 str_pad(string $string, int $length, string $pad_string = " ", int $pad_type = STR_PAD_RIGHT): string
  • $ 문자열 : 원래 문자열

  • $ 길이 : 충전 후 총 길이

  • $ pad_string : 패딩에 사용되는 문자

  • $ pad_type : 방향을 채우고 선택 사항 str_pad_right , str_pad_left 또는 str_pad_both

예 2 : 문자 정렬 메뉴 목록을 만듭니다

 $menu = [
    ['로그인하십시오', 'https://gitbox.net/login'],
    ['등록하다', 'https://gitbox.net/signup'],
    ['도움말 센터', 'https://gitbox.net/help'],
];

foreach ($menu as $item) {
    $name = str_pad($item[0], 20, ' ', STR_PAD_RIGHT);
    echo $name . ' => ' . $item[1] . PHP_EOL;
}

산출:

 로그인하십시오                 => https://gitbox.net/login
등록하다                 => https://gitbox.net/signup
도움말 센터             => https://gitbox.net/help

정렬 효과는 한눈에 분명합니다!

3. sprintf ()와 str_pad ()의 조합

물론, 두 가지 기능은 더 복잡한 조판 요구에 적합한 조합으로 사용될 수 있습니다. 예를 들어 Sprintf ()를 사용하여 형식 정확도를 처리 한 다음 str_pad () 를 통해 열 너비를 채울 수 있습니다.

 $items = [
    ['ID' => 1, '이름' => '사과', '가격' => 2.5],
    ['ID' => 2, '이름' => '바나나', '가격' => 1.3],
    ['ID' => 3, '이름' => '주황색', '가격' => 3.75],
];

foreach ($items as $item) {
    $id = str_pad($item['ID'], 4, ' ', STR_PAD_RIGHT);
    $name = str_pad($item['이름'], 10, ' ', STR_PAD_RIGHT);
    $price = str_pad(sprintf("%.2f", $item['가격']), 6, ' ', STR_PAD_LEFT);
    echo "{$id}{$name}{$price} 원\n";
}

산출:

 1   사과       2.50 원
2   바나나       1.30 원
3   주황색       3.75 원

요약

형식 제어 측면에서 Sprintf ()str_pad ()는 각각 고유 한 강점을 가지고 있습니다.

  • Sprintf ()는 숫자, 날짜, 문자열 등 서식에 적합하며 강력한 형식 템플릿 지원이 있습니다.

  • str_pad ()는 너비를 채우고 문자열을 왼쪽과 오른쪽으로 중심하는 데 적합합니다.

  • 이 둘의 조합은 출력 레이아웃을보다 유연하고 강력하게 만들 수 있습니다.

이 두 기능을 마스터하면 명령 줄 도구, 로그 인쇄 또는 배경 관리 페이지의 출력 디버깅 등 아름답고 깔끔한 텍스트 출력 인터페이스를 쉽게 만들 수 있습니다. 출력부터 PHP 프로그램을보다 전문적으로 보이게하십시오!