さあ始めましょう

これは Zend_Markup BBCode パーサーと HTML レンダラーを用いる Zend_Markup を始めるためのガイドです。 他のパーサーやレンダラーに適用できる原則です。

Example #1 基本的な Zend_Markup 使用法

まず初めに Zend_Markup::factory() メソッドを用いて、 Zend_Markup_Renderer_Html オブジェクトを具象化します。 Zend_Markup_Parser_Bbcode オブジェクトがレンダラーに 追加され作成されるでしょう。

その後、 render() メソッドを BBCode から HTML の断片に変換するために使用します。

  1. // Zend_Markup_Parser_BbCode を自身のパーサーとして、
  2. // Zend_Markup_Renderer_Html のインスタンスを生成します。
  3. $bbcode = Zend_Markup::factory('Bbcode');
  4.  
  5. echo $bbcode->render('[b]bold text[/b] and [i]cursive text[/i]');
  6. // 出力: '<strong>bold text</strong> and <em>cursive text</em>'

Example #2 Zend_Markup のより複雑な例

今回、上記と同様なことを正確に行いますが、より複雑な BBCode の例です。

  1. $bbcode = Zend_Markup::factory('Bbcode');
  2.  
  3. $input = <<<EOT
  4. [*]Zend Framework
  5. [*]Foobar
  6. [/list]
  7. EOT;
  8.  
  9. echo $bbcode->render($input);
  10. /*
  11. このように出力されるはずです:
  12. <ul>
  13. <li>Zend Framework</li>
  14. <li>Foobar</li>
  15. </ul>
  16. */

Example #3 不正確な入力でのプロセス

BBCode のようなマークアップの簡潔な解析とレンダリングの側面から、 Zend_Markup は誤った入力も扱えます。大抵の BBCode 処理機構は全ての入力に対し XHTML での正しい出力を行えません。 Zend_Markup は、 不正確なネストや閉じられていない閉じタグを訂正します:

  1. $bbcode = Zend_Markup::factory('Bbcode');
  2.  
  3. echo $bbcode->render('some [i]wrong [b]sample [/i] text');
  4. // '[b]' は決して閉じられておらず、また不正確にネストされていることに注意しましょう。
  5. // それにもかかわらず、 Zend_Markup は以下のように正確にレンダリングします:
  6. // some <em>wrong <strong>sample </strong></em><strong> text</strong>
blog comments powered by Disqus