このエントリーをはてなブックマークに追加

更新日: 2016年2月25日

実行時間: 0.0213

CI_Typography

 「CI_Typography」ライブラリクラスは、テキストをHTMLページ上で読みやすいようにフォーマットし直す 機能を提供しています。

 他のライブラリクラスのような、設定項目を必要としないため、設定ファイルやロード時に設定情報を
指定する必要はありません。

CI_Typographyのロード

 「CI_Loader」クラスの「library()」メソッドでロードします。

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

CI_Typographyの提供する機能

auto_typography($str, $reduce_linebreaks = FALSE)

 ブログ投稿など、あるまとまったテキスト記事をブラウザで表示する際に読みやすい形でHTML
フォーマットするメソッドです。

 具体的には、以下の処理を行い変換したテキストデータを返します。

  1. 段落
  2. 空行区切りで文章を「<p> </p>」タグで囲みます。
    また、改行を「<br />」に変換します。
    (一部のブロック要素のHTMLタグで囲まれた文章は対象外です。)
    対象外ブロック要素
    p pre h1 h2 h3 h4 h5 h6 ul ol dl object table
  3. 実態参照変換
  4.  次に説明する「format_characters()」メソッドでクォート文字などの一部の文字を
    実態参照に変換します。
     ただし、「<pre> </pre>」タグで囲まれているテキスト、及び、インライン要素のタグで
    囲まれているテキスト、HTMLタグ内の文字は対象外です。
    変換前
     むかし、むかし、丹後の国|水の江の浦に、浦島太郎というりょうしがありました。
     浦島太郎は、毎日つりざおをかついでは海へ出かけて、たいや、かつおなどのおさかなをつって、おとうさんおかあさんをやしなっていました。

     ある日、浦島はいつものとおり海へ出て、一日おさかなをつって、帰ってきました。途中、子どもが五、六人|往来にあつまって、がやがやいっていました。
    $str = $this->input->post('blog_text');
    echo $this->typography->auto_typography($str);
    変換後
    <p> むかし、むかし、丹後の国|水の江の浦に、浦島太郎というりょうしがありました。<br />
      浦島太郎は、毎日つりざおをかついでは海へ出かけて、たいや、かつおなどのおさかなをつって、おとうさんおかあさんをやしなっていました。</p>

    <p> ある日、浦島はいつものとおり海へ出て、一日おさかなをつって、帰ってきました。途中、子どもが五、六人|往来にあつまって、がやがやいっていました。</p>

format_characters($str)

 テキスト中に含まれる以下の文字を実態参照文字に変換します。

    • 開始クォート
変換前 変換後 実態参照
'" ‘“ &#8216;&#8220;
"' “‘ &#8220;&#8216;
' &#8216;
" &#8220;
    • 閉じクォート
変換前 変換後 実態参照
'" ’” &#8217;&#8221;
"' ”’ &#8221;&#8217;
' &#8217;
" &#8221;
    • その他
変換前 変換後 実態参照
アポストロフィ
' &#8217;
2重ダッシュ => 全角ダッシュ
-- &#8212;
3重ドット => 三点リーダ
... &#8230;
2重空白 *注
␣␣ ␣␣ &nbsp;
*注
    英単語間にある複数のスペースは変換されません。つまりブラウザでは1つのスペースに見えます。
    変換前
    To Adam he said, "Because you have listened to your wife's voice, and have eaten of the tree, of which I commanded you, saying, 'You shall not eat of it,' cursed is the ground for your sake. In toil you will eat of it all the days of your life.
    $str = $this->input->post('blog_text');
    echo $this->typography->format_characters($str);
    変換後
    To Adam he said, &#8220;Because you have listened to your wife&#8217;s voice, and have eaten of the tree, of which I commanded you, saying, &#8216;You shall not eat of it,&#8217; cursed is the ground for your sake. In toil you will eat of it all the days of your life.&#8221;

nl2br_except_pre($str)

 「<pre> </pre>」タグで囲まれているテキスト以外のテキストに含まれる改行文字を 「≶br />」タグに変換します。

    変換前
    <pre>
    But it stopped short
    Never to go again,
    When the old man died.
    </pre>
    But it stopped short
    Never to go again,
    When the old man died.
    $str = $this->input->post('blog_text');
    echo $this->typography->nl2br_except_pre($str);
    変換後
    <pre>
    But it stopped short
    Never to go again,
    When the old man died.
    </pre>
    But it stopped short<br />
    Never to go again,<br />
    When the old man died. <br />