文字列の整形
データのHTML化に便利
テキストデータをHTMLで整形する時などに便利な関数です。
HTML化
データをHTMLにするとき、最も単純な方法は、以下のようなものでしょう。
echo '<a href="' . $linkurl . '">' . $linktitle . '</a>';
もちろんこれでも動作します。 この例だと変数がそれほど多くないのであまり気になりませんが、間に入ってくる変数が多いとソースが読みにくくなります。
関数 printf を利用しよう。
文字列のフォーマット部分と、データ部分を分離すると、ソースの可読性が向上します。 関数 printf を利用すると、以下のようになります。
$htmlformat = '<a href="%s">%s</a>'; printf($htmlformat, $linkurl, $linktitle);
printf では、最初の引数が書式です。二番目以降の引数は、書式の中の%sの部分に、順に埋め込まれます。
%sは文字列を意味しています。数字の場合は、%d(10進数)や%x(16進数)を用います。
引数の順序を変える
上述の例では、引数を与えた順に埋め込みました。 順番を明示的に指定することもできます。 %1$sのように記述します。 同じ引数を複数回使うこともできます(下記例を参照)。
$htmlformat = '<a title="%2$s" href="%1$s">%2$s</a>'; printf($htmlformat, $linkurl, $linktitle);
printfの仲間
printf には、仲間の関数があります。
- printf 文字列を整形し、echo する
- sprintf 文字列を整形し、echo しない
- vprintf 書式引数が配列、echo する
- vsprintf 書式引数が配列、echo しない
例えば、vprintf の場合、一番目の引数が書式で二番目の引数が配列、となります。
$htmlformat = '<a href="%s">%s</a>'; $link = array($linkurl, $linktitle); vprintf($htmlformat, $link);Copyright (C) 2003-2018. PHP で WEB 作成 All rights reserved.