PHPでは、 SprintF関数を使用して文字列出力をフォーマットして、フォーマットされたテーブルの構築に役立ちます。この記事では、 SprintF関数を使用してシンプルなテーブル出力ツールを実装する方法を示します。
sprintf関数は、フォーマットされた文字列を変数に出力します。その基本的な使用法は次のとおりです。
sprintf(format, args...)
フォーマットは、出力コンテンツの構造を定義するフォーマット文字列です。
args ...は、形式文字列のプレースホルダーに対応するパラメーターです。
一般的なフォーマットシンボルには、 %s (string)、 %d (積分)、 %f (フローティング番号)などが含まれます。
ユーザーの名前とメールアドレスを表示する単純なフォームを出力する必要があるとします。 Sprintfを介してデータの各行をフォーマットしてから、これらの行を完全なテーブルにスプライスできます。
私たちはテーブルを次のように見せたいです:
名前 | 郵便 |
---|---|
アリス | [email protected] |
ボブ | [email protected] |
最初に、テーブルの列のタイトルとデータを定義し、 Sprintfを使用して出力をフォーマットします。
<?php
// ヘッダ
$header = sprintf("| %-10s | %-20s |\n", "名前", "郵便");
// 表形式データ
$data = [
["Alice", "[email protected]"],
["Bob", "[email protected]"]
];
// 出力テーブルヘッダー
echo $header;
echo str_repeat("-", strlen($header) - 1) . "\n"; // 出力仕切り
// 输出表形式データ
foreach ($data as $row) {
echo sprintf("| %-10s | %-20s |\n", $row[0], $row[1]);
}
?>
sprintf( "|%-10S |%-20S | \ n"、 "name"、 "email");テーブルヘッダーを生成します。 %-10Sとは、10文字の幅がある左のアライメントを意味します。 %-20秒とは、20文字の幅がある左のアライメントを意味します。
str_repeat( " - "、strlen($ header)-1)は、テーブルヘッダーの幅と同じ長さの仕切りを生成するために使用されます。
次に、 foreachループを介してデータ配列を繰り返し、 Sprintfを使用して各行の出力をフォーマットします。
上記のコードを実行した後、出力結果は次のとおりです。
| 名前 | 郵便 |
--------------------------------------
| Alice | [email protected] |
| Bob | [email protected] |
列の幅の変更、アライメント、または追加の列の追加など、必要に応じてフォーマットを調整できます。 sprintfの形式に基づいて、関連する部分を変更するだけです。
たとえば、右に調整したい場合は、 %10sを使用できます(幅を指定し、右整列したものを指定します):
echo sprintf("| %10s | %20s |\n", "Alice", "[email protected]");
sprintf関数を使用すると、表形式データを簡単にフォーマットおよび出力できます。 Sprintf自体はテーブルの機能を直接サポートしていませんが、提供するフォーマット制御を介して、簡単なテーブル出力ツールを簡単に実装できます。