매일 PHP 프로그래밍에서 테이블 형식 목록, 로깅 형식, 명령 줄 출력 등과 같은 깔끔하게 정렬 된 데이터를 출력해야합니다. 여전히 Echo를 사용하여 수동으로 스플 라이스 공백 또는 탭을 사용하여 정렬을 달성하는 경우 Sprintf () 및 str_pad ()가 이러한 것들을 쉽게 처리 할 수 있도록 도와줍니다.
Sprintf ()는 문자열을 형식화하는 데 사용되는 PHP의 함수입니다. 형식 템플릿에 따라 변수를 포맷 할 수 있으며, 이는 숫자와 문자열의 정렬을 제어하는 데 매우 적합합니다.
$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]);
}
출력 결과는 균일하며 숫자가 크지 않거나 소수점 자리 수에 상관없이 정렬 된 방식으로 표시 할 수 있습니다.
Sprintf ()는 강력하지만 경우에 따라 문자열을 단순히 정렬하고 왼쪽과 오른쪽으로 채우면 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
$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
정렬 효과는 한눈에 분명합니다!
물론, 두 가지 기능은 더 복잡한 조판 요구에 적합한 조합으로 사용될 수 있습니다. 예를 들어 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 프로그램을보다 전문적으로 보이게하십시오!