ホームページ  >  記事  >  バックエンド開発  >  PHPのsprintf()関数の使い方を詳しく解説_PHPチュートリアル

PHPのsprintf()関数の使い方を詳しく解説_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:15:00850ブラウズ

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);
                $fromUsername = $postObj->FromUserName;
                $toUsername = $postObj->ToUserName;
                $keyword = トリム($postObj->コンテンツ);
                $time = time();
    $msgType = "テキスト";
                $textTpl = "
       
       
       %s
       
       <コンテンツ>
       0
       
";
    if(!empty( $keyword ))
                {
                
                 $contentStr = $this->keyrep($keyword);
     if( empty($contentStr) )
     {
      $contentStr ="你是注意的吧,没文化真可怕";//你是注意的吧,没文化真可怕;
     }
     //$contentStr = @iconv('UTF-8','gb2312',$keyword);
                 $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                 エコー $resultStr;
     
                }その他{
                 $contentStr = '没文化真可怕,居然不会打字!';//$this->keyrep($keyword);
                 //$contentStr = @iconv('UTF-8','gb2312',$keyword);
     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                 エコー $resultStr;
                }

上で使用されているのは XML です。ネチズンによって書かれた別の例を見てみましょう。

コードは次のとおりです コードをコピー


/**
* sprintf()関数を使用します
* * @日付 2012-12-17
* * @著者cntnn11
​*/
/**
* 手動定義: この関数は、フォーマットされた文字列を変数に書き込みます。
* 彼の認識可能な形式
* %% - パーセント記号を返します
*** * %C - ASCII 値に基づく文字
*** * %E - 科学的な数え方 (1.5E+3 など)
*** *** *** *** *** *** *** * * sprintf($str, arg1, arg2, arg3...);
​*/

/**
* 1.%%
* %% を %
に置き換えます ​*/
$testStr = 'このパラメータの %% をテストします。何に置き換えられますか?';
echo sprintf($testStr),'
';
//-> % パラメータをテストします。それは何に置き換えられますか;
//残り 1% のみ
//実際には「%」を返すだけのようです。しかし、それを実際のアプリケーションでどのように使用するのでしょうか?
//私も分かりません~
echo '



';
/**
* 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 '


';


?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/628892.html技術記事 sprintf() 関数がフォーマットされた文字列を変数に書き込むことはよく知られています。sprintf() 関数の使い方を紹介します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。