【PHPをふわっと語りたい人のための入門講座】 文字フォーマットを使用した文字出力方法

 
このブログでは、PHPを始めようと考えている方が少しでもわかりやすく理解できるように、ふわっと優しく勉強していきます!

今回は、printf/vprintf/sprintfの文字フォーマットを指定しての文字列出力についてです。

フォーマットとは?

フォーマットとは、データ出力の際に表示する形式を指定するための記述子のことです。
記述子の一覧を下記に記載します。

記述子一覧

%b
2進表現として表現
%c
ASCII 値の文字として表現
%d
10進数として表現
%e
指数形式の浮動小数点として表示(科学記法)
%u
符号無しの 10 進数として表示
%f
浮動小数点数として表現
%o
8 進数として表現
%s
文字列として表現
%x
小文字の16 進数として表現
%X
大文字の16 進数として表現

特に%dの10進数表示と、%sの文字列フォーマットは必ず覚えましょう。
※ これだけ覚えれば、ふわっと語ることができます!

printf文字出力

PHPでのフォーマットでの文字出力の方法のひとつprintfについて説明します。

関数名
printf
解説
フォーマット済みの文字列を出力する
戻り値
出力した文字列の長さを返却

  int printf (
    string $format                  // 出力フォーマット
    [,  mixed $args [,  mixed $... ]]     // 出力したいすべてのパラメータ
  )

printf出力サンプル(各記述子)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
	<head>
		<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
		<title>printf出力サンプル</title>
	</head>
	<body>
		<p>
			<?php
				printf("%%b = %b<br/>",  10);
				printf("%%c = %c<br/>",  65);               // ASCIIでの65は文字列'A'となる
				printf("%%d = %d<br/>",  10);
				printf("%%d(マイナス) = %d<br/>",  -10);
				printf("%%e = %e<br/>",  10.12);
				printf("%%u = %u<br/>",  10);
				printf("%%u(マイナス) = %u<br/>",  -10);     // 符号なしのため、正しく表示されない
				printf("%%f(整数) = %f<br/>",  10);
				printf("%%f(小数点) = %f<br/>",  10.12);
				printf("%%f(マイナス小数点) = %f<br/>",  -10.12);
				printf("%%o = %o<br/>",  10);
				printf("%%s = %s<br/>",  "printfで文字出力");
				printf("%%x = %x<br/>",  10);
				printf("%%X = %X<br/>",  10);
			?>
		</p>
	</body>
</html>
出力結果
format1

出力ソース
format1-1

printfでの改行は、出力の終わりに“</br>”を付け加えることにより行うことができます。
また、フォーマットを複数組み合わせて出力を行う事も可能です。
複数フォーマットを使用しての文字列出力のサンプルを下に載せます。

printf複数フォーマットサンプル

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
	<head>
		<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
		<title>printf複数出力サンプル</title>
	</head>
	<body>
		<p>
			<?php
				printf("あなたの名前は、%sで、年齢は%dです。<br/>",  "ホゲホゲ",  30);
			?>
		</p>
	</body>
</html>
出力結果
format2

出力ソース
format2-1

vprintf文字生成

今回の二つ目のフォーマット文字出力方法vprintfについて説明します。
printfと基本的に使用方法は一緒ですが、関数に受け渡す引数が可変長ではなく配列の引数となります。

関数名
vprintf
解説
フォーマット済みの文字列を出力する
戻り値
出力した文字列の長さを返却

  int vprintf (
    string $format                         // 出力フォーマット
    array  $args                           // 出力したいすべてのパラメータ配列
  )

vprintf文字出力サンプル

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
	<head>
		<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
		<title>vprintf出力サンプル</title>
	</head>
	<body>
		<p>
			<?php
				$array1 = array("ホゲホゲ", 30);
				$array2 = array("ホゲホゲ2", 20);
				vprintf("あなたの名前は、%sで、年齢は%dです。<br/>",  $array1);
				vprintf("私の名前は、%sで、年齢は%dです。<br/>",  $array2);
			?>
		</p>
	</body>
</html>
出力結果
hoge3

出力ソース
format3-1

配列については今後のブログで説明しようと思っているので、今の段階でわからない方はふわっとこんなのがあるんだ程度でOKです。

sprintf文字生成

指定フォーマットで文字列を新たに生成するsprintfを紹介します。
この関数はフォーマットを元に生成された文字列を返却する関数となります。
※この関数だけでは、画面出力されませんので気を付けてください。

関数名
sprintf
解説
フォーマット文字列formatに基づき生成された文字列を返します。
戻り値
フォーマット文字列formatに基づき生成された文字列

  string sprintf (
    string $format                  // 出力フォーマット
    [,  mixed $args [,  mixed $... ]]     // 出力したいすべてのパラメータ
  )

sprintf文字出力サンプル

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
	<head>
		<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
		<title>sprintf出力サンプル</title>
	</head>
	<body>
		<p>
			<?php
				$hoge = sprintf("あなたの名前は、%sで、年齢は%dです。<br/>",  "ホゲホゲ",  30);
				$hogehoge = sprintf("私の名前は、%sで、年齢は%dです。",  "ホゲホゲ2",  20);
				echo $hoge;
				echo $hogehoge;
			?>
		</p>
	</body>
</html>
出力結果
format4

出力ソース
format4-1

次回

いかがでしたか?

今回は、フォーマットを使用した文字出力方法について勉強していきました。
このフォーマットを使っての文字出力が語れるだけで、知ってる雰囲気が出せるのでぜひ覚えてみてください!

次回は、変数について解説します。

《関連記事》
【PHPをふわっと語りたい人のための入門講座】 PHPのゆるっとした基礎知識について
【PHPをふわっと語りたい人のための入門講座】 ものすごく簡単な文字列出力(echo, print)

記事をシェア
MOST VIEWED ARTICLES