文字列の整形

データの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 には、仲間の関数があります。

例えば、vprintf の場合、一番目の引数が書式で二番目の引数が配列、となります。

  $htmlformat = '<a href="%s">%s</a>';
  $link = array($linkurl, $linktitle);
  vprintf($htmlformat, $link);
Copyright (C) 2003-2018. PHP で WEB 作成 All rights reserved.