sprintf

Posted by muchag | PHP | 2015-02-16 (月) 9:31:41

フォーマットを指定して文字列を生成する関数。

PHP マニュアル:sprintf

【環境】
php:5.4.7
書式

string sprintf ( string $format [, mixed $args [, mixed $… ]] )

フォーマット文字列 format に基づき生成された文字列を返します。

第1引数:フォーマット文字列
第2引数以降:配置引数(文字列、数値)。省略可
返り値フォーマット済み文字列
 

フォーマット文字列

一般文字列の中に各指定子を組み込む形式。
正規表現と同じような指定子の使い方。

  1. $str = sprintf( 'リンゴ%d個', 5 );
  2. echo $str;
  3.  
  4. // 出力結果
  5. リンゴ5

%d の部分が指定子。
そして、後続引数(5 の部分)にて値を指定。
これで指定子の部分を引数に置換して返してくれる。
 

指定子

詳細はマニュアルで。
 

置換指定子

%d:整数
%+d:整数(符号あり)
%-d:整数(符号あり)
%s:文字列
 

位置指定子

n$:n = 引数の順序。% 直後に配置
%1$d:1番目の引数の整数を指定
%2$s:2番目の引数の文字列を指定

  1. $str = sprintf( '%2$sからもらったリンゴは%1$d個', $num, $name );
  2. echo $str;
  3.  
  4. // 出力結果
  5. 太郎からもらったリンゴは5

引数の順番が入れ替わっても大丈夫!
 

パディング

桁(文字数)揃え。
0 パディングだけでなく、何でも指定できる。
*n:* = 埋める文字(数字)、n = 桁数
%04d:4桁の0 パディング

0 以外の文字を利用する場合は、
‘# のようにシングルクォーテーションを付けるみたい。
未検証。
 
私が具体的に利用したのは

  1. $year = 2015;
  2. $month = 2;
  3. $str = sprintf( '%04d-%02d', $year, $month );
  4. echo $str;
  5.  
  6. // 出力結果
  7. 2015-02

 
参考
PHP マニュアル:str_pad

PHP | 2015-02-16 (月) 9:31:41 |

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment