sprintf() 関数がフォーマットされた文字列を変数に書き込むことはよく知られています。必要な場合は sprintf() 関数の使用方法を紹介します。
使用方法
sprintf(format,arg1,arg2,arg++)
手順
format パラメーターは、パーセント記号 (「%」) で始まり変換文字で終わる変換のフォーマットです。以下の可能な形式値:
•%% - パーセント記号を返します
•%b - 2 進数
•%c - ASCII 値に基づく文字
•%d - 符号付き 10 進数
•%e - 連続カウント方法 (例: 1.5e+3)
•%u - 符号なし 10 進数
•%f - 浮動小数点数 (ローカル設定を認識)
•%F - 浮動小数点数 (ローカル設定は認識されません)
•%o - 8 進数
•%s - 文字列
•%x - 16 進数 (小文字)
•%X - 16 進数 (大文字)
引数 arg1、arg2、++ などは、メイン文字列のパーセント記号 (%) 記号の位置に挿入されます。この関数はステップごとに実行されます。最初の % 記号には arg1 が挿入され、2 番目の % 記号には arg2 が挿入されます。
WeChat オープン プラットフォームで次のコードが表示されます
代码如下 | 复制幣 |
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); |
上で使用されているのは XML です。ネチズンによって書かれた別の例を見てみましょう。
コードは次のとおりです | コードをコピー |
'; /** * 2. %b * このパラメータは整数データのみを置き換えることができます。浮動小数点型の場合は、整数部分のみを受け取ります。小数点は無視されます * 整数以外のデータの場合は 0 を返します */ $testStr = '%b は 2 進数に置き換えられると聞きましたが、本当ですか? '; $arg = '10'; echo sprintf($testStr, $arg),' '; //-> 1010; 本当に置き換えられました。 //-> 101; //-> 0; $arg=str/bool... echo ' '; /** * 3. %c は文字エンコーディングの ASCII コードを返します * ヒント: [彼は ASCII コードを返しません] * $arg は int、つまり ASCII 数値を受け入れ、値に対応する文字を返します */ $testStr = '%c をテストしましょう: ASCII コードを返せるかどうかを確認してください'; $arg = '122'; エコー sprintf($testStr, $arg); //-> $arg=65; //-> $arg=122 ; echo ' '; /** * 4. %d は文字内の %d を int 型に置き換えます * ヒント: これは任意の int 型にすることができます。 ※浮動小数点データの場合は整数部分のみ置換されます ※数値以外の場合は0に置き換えられます */ $testStr = "これは ID です。ID 番号は %d です。"; $arg = '-4'; エコー sprintf($testStr, $arg); //-> 4.5; //->0; $arg=[a-zA-Zs]; echo ' '; /** * 5. %e 科学表記法 * ヒント: 非常に長い整数データは科学表記法で表現してください * %d と同様に、この関数も小数点を無視し、数値以外のデータを 0 に置き換えます */ $testStr = "非常に長く、N 桁を超えています... %e"; $arg = '46498464654864564642449463699789789313'; エコー sprintf($testStr, $arg); //-> 4.649846e+14; $arg=464984646548645.64642449463699789789313 //-> 0.000000e+0; echo ' '; /** * 5. %u - 符号なし 10 進数 * 分かりません。 。 。負の数の場合、その値が何であるかわかりません */ $testStr = "私は符号なし 10 進数です... %u"; $arg = '456'; エコー sprintf($testStr, $arg); echo ' '; /** * 6. %f - 浮動小数点数 (ローカル設定を認識) * %d の逆ですか? * これは浮動小数点数を返します。小数点以下の固定桁は 6 桁のみです * 文字列も 0; */ $testStr = "その d との違いは何ですか? %f"; $arg = '456.235645'; エコー sprintf($testStr, $arg); echo ' '; /** * 7. %F - 浮動小数点数 (ローカル設定は認識されません) * %f の逆ですか?なぜ小さなfと変わらないのでしょうか?まさか */ $testStr = "小文字の f との違いは何ですか? %F"; $arg = '12312316.46898'; エコー sprintf($testStr, $arg); echo ' '; /** * 8. %o - 8 進数 * %d と同じ。パラメーターが 8 進数値で渡されるだけです */ $testStr = "8 進数を 10 進数 %o に置き換えます"; $arg = '8'; エコー sprintf($testStr, $arg); echo ' '; /** * 9. %x - 16進数(小文字) * %d/%o と同じ。パラメーターが小文字を含む 16 進値で渡されるだけです */ $testStr = "16 進数を 10 進数 %o に置き換えます"; $arg = '456d12'; エコー sprintf($testStr, $arg); echo ' '; /** * 10. %X - 16進数(大文字) * %d/%o/%x と同じ。パラメーターが大文字の 16 進値で渡されるだけです ※%x %X の大文字と小文字の違いはないようです... */ $testStr = "大文字の 16 進数を 10 進数の %o に置き換えます"; $arg = '456D12'; エコー sprintf($testStr, $arg); echo ' '; /** * 11. %s - 文字列 * %s を渡した文字列に置き換えます */ $string = "これはテストに使用した sprintf 文字列 (%s) です。今日は %f 元使いました。下七駅から知春路までは %d 駅あります。仕事に行きましょう。"; $arg = ''; echo sprintf($string, $arg, 234, 10); echo ' '; ?> |