毎日のPHPプログラミングでは、特定の形式で文字列または数値を出力する必要があることがよくあります。この時点で、 Sprintf()関数はあなたの優れたヘルパーです。出力をより制御可能にするだけでなく、コードをよりきれいで読みやすくします。この記事では、Sprintf()の使用方法と手法を体系的に習得することができます。
sprintf()は、フォーマットされた文字列を結果として返すPHPの組み込み関数です(直接出力なし)。これはprintf()に似ていますが、 printf()は直接出力であり、 sprintf()は返品後に自由に処理できる結果です。
関数プロトタイプは次のとおりです。
string sprintf(string $format, mixed ...$values)
$フォーマット:フォーマットテンプレート文字列。
$値:形式テンプレートに挿入される1つ以上の値。
$name = 'シャオミン';
$city = '北京';
$message = sprintf("こんにちは,私は%s,私は____から来ました%s。", $name, $city);
echo $message;
出力結果:
こんにちは,私はシャオミン,私は____から来ました北京。
$price = 49.5;
$message = sprintf("製品の価格はです %.2f 元", $price);
echo $message;
出力結果:
製品の価格はです 49.50 元
説明:
%.2Fとは、2つの小数点を保持する浮動小数点数を意味します。
フォーマット文字 | 意味 | 例 |
---|---|---|
%s | 弦 | sprintf( "hello%s"、 "Tom") |
%d | 整数(小数) | sprintf( "年齢は%d"、25) |
%f | フローティングポイント番号 | sprintf( "スコアは%.1f"、98.6) |
%x | 16進 | sprintf( "数字は%x"、255) |
%02d | ゼロの2桁未満の整数 | sprintf( "番号は%02d"、5) =>番号は05です |
製品IDや名前を含むパラメーターを使用して、製品の詳細ページへのリンクを生成する必要があるとします。
$productId = 123;
$productName = 'Bluetoothヘッドフォン';
$url = sprintf("https://gitbox.net/product/view.php?id=%d&name=%s", $productId, urlencode($productName));
echo $url;
出力結果:
https://gitbox.net/product/view.php?id=123&name=%E8%93%9D%E7%89%99%E8%80%B3%E6%9C%BA
番号付けを使用して、形式の文字列でパラメーターを繰り返すことができます。
$name = 'チャン・サン';
$message = sprintf("%1\$s,こんにちは!%1\$s,メールを確認してください。", $name);
echo $message;
出力結果:
チャン・サン,こんにちは!チャン・サン,メールを確認してください。
説明: %1 \ $ sは、最初のパラメーターが使用されることを意味します。
$line = sprintf("| %-10s | %10s |", "商品", "価格");
echo $line;
出力結果:
| 商品 | 価格 |
説明:
%-10S :左に整合し、10文字が幅10文字を占めています。
%10s :右整列、幅10文字を占める。
Sprintf()を使用することはフォーマットに柔軟ですが、Webページ、データベース、ファイルに出力する際には、安全に注意を払う必要があります。
Webページに出力するときは、 htmlspecialchars()を使用することを忘れないでください。
SQLを構築するときは、 sprintf()を直接使用しないでください。パラメーターバインディング(PDOまたはMySQLIの前処理ステートメントなど)を使用することをお勧めします。
URLのパラメーターは、urlencode()でエンコードすることをお勧めします。
Sprintf()は、強力でエレガントなフォーマットツールです。基本的な構文とフォーマット制御文字をマスターする限り、弦の処理にウィングを追加できます。ページ表示、ロギング、または構造化データの生成であれ、より明確で保守可能なコードを書き込むのに役立ちます。
それをあなたのプロジェクトに適用してください!