# CodeIgniter ユーザガイド 日本語版 Version 2.0.1

ユーザガイドを検索

# タイポグラフィークラス

タイポグラフィークラスは、文字列のフォーマットに役立つメソッドを提供します。

## クラスの初期化

CodeIgniterの大部分のクラスと同様、タイポグラフィークラスはコントローラの中で $this->load->library メソッドを使って初期化します:

`$this->load->library('typography');`

いったん読み込まれると、タイポグラフィーオブジェクトは、次のようにして利用可能です: $this->typography

## auto_typography()

テキストを、意味論的にも体裁的にも正しいHTMLにフォーマットします。 入力した文字列を、以下のような体裁に整形して返します:

- 段落を <p></p> タグで囲みます(2つの連続する改行を段落の区切りと認識します)。
- <pre> タグ内にあるものを除いて、改行を <br /> タグに変換します。
- <div> タグのようなブロックレベル要素は、段落として囲まれませんが、そのブロックレベル要素が含んでいる段落は、段落として変換されます。
- 引用符は、タグ内にあるものを除いて、見栄えのよい引用符の実体参照に変換されます。
- アポストロフィは、見栄えのよいアポストロフィの実体参照に変換されます。
- (「 -- 」や「--」のような)2つのダッシュは、長いダッシュ「—」に変換されます。
- 単語の前後にある3つの連続するピリオドは、省略形の「…」に変換されます。
- 文章に続く二重の半角スペースは、二重スペースに見せかけるため、改行無しスペースに変換されます。

使用例:

`$string = $this->typography->auto_typography($string);`

### パラメータ

オプションでパーサが2つ以上の連続した改行を2つに減らすべきかどうかを指定します。ブール値の `TRUE` か `FALSE` で指定します。

デフォルトでは、パーサは JS のイベントハンドラを無効にし、改行は減らしません。言い換えると、引数を何も指定しなければこのように指定するのと同じです:

`$string = $this->typography->auto_typography($string, `TRUE`, `FALSE`);`

Note: この処理は、文章が大量である場合は特に、プロセッサーに負荷をかけます。 このメソッドを使う場合、 ページをキャッシュする事も検討した方が良いかもしれません。

## format_characters()

このメソッドは、文字列変換のみを行うという点を除けば、上記の auto_typography メソッドと似ています:

- 引用符は、タグ内にあるものを除いて、見栄えのよい引用符の実体参照に変換されます。
- アポストロフィは、見栄えのよいアポストロフィの実体参照に変換されます。
- (「 -- 」や「--」のような)2つのダッシュは、長いダッシュ「—」に変換されます。
- 単語の前後にある3つの連続するピリオドは、省略形の「…」に変換されます。
- 文章に続く二重の半角スペースは、二重スペースに見せかけるため、改行無しスペースに変換されます。

使用例:

`$string = $this->typography->format_characters($string);`

## nl2br_except_pre()

<pre> タグ内にある場合を除き、改行を <br /> タグに変換します。 このメソッドは、<pre> タグ内を無視するという点を除けば、PHPのネイティブ関数 nl2br() と同じです。

使用例:

`$string = $this->typography->nl2br_except_pre($string);`

## protect_braced_quotes

タイポグラフィークラスをテンプレートパーサクラスと一緒に利用している場合、括弧({})内のシングルクォートやダブルクォートをそのまま利用したい、というケースがよくあります。 そういう場合は、クラスのプロパティ `protect_braced_quotes` を `TRUE` に指定してください。

使用例:

`$this->load->library('typography');
$this->typography->protect_braced_quotes = TRUE;`