.




うぇブログ2
最新エントリ

2005/06/23
カテゴリ : Text_Highlighter

執筆者: itoh (6:41 pm)
ソースをきれいに見せてくれるPEARパッケージText_Highlighter
PHPの関数にもhighlight_string()というのがあるが、このパッケージはPHPだけではなく、
'php', 'cpp', 'css', 'diff', 'dtd', 'javascript', 'mysql', 'perl', 'python', 'ruby', 'sql', 'xml'の言語について
パースできるという優れもの。
また、highlight_string()がFONTタグで装飾しているのに対し(PHP5ではCSS)、CSSで装飾できるところも利点だ。

さらに、行番号を打つこともできる。
使い方はきわめて簡単
1.まず、includeする
require_once 'Text/Highlighter.php';

2.オブジェクトを作る
$highlighter =& Text_Highlighter::factory('php');

3. highlight1メソッドを呼んでプリントアウトする
echo $highlighter->highlight($some_source_code);

これだけ。

お気づきのとおり、2のオブジェクトを作る時に、'PHP'以外の言語を選択することで、
他の言語に対するパース処理を行える。



Text_Highlighterのオプション

Text_Highlighterオブジェクトを作る時には、第二引数にオプション項目を設定する配列を与えることができる。
配列のキー:オプション名
配列の値:オプション値
になる。

・オプション'numbers'
は、行番号を付けるかどうかのオプション。デフォルトでは付けない。
これには、HL_NUMBERS_LIとHL_NUMBERS_TABLEの値が有効。前者は、行番付に<li>タグを使う。
後者は、テーブルタグで行番号をつけてる。
このオプションを有効にした場合、出力をする前に、HTMLやコンソールにレンダリングさせる
必要がある。
出力を行う前に、
<?php
  require_once 'Text/Highlighter/Renderer/Html.php';
  $renderer =& new Text_Highlighter_Renderer_HTML($options);
    $highlighter->setRenderer($renderer);
?>

として、レンダリングさせることで行番号がつく。

レンダラとしては、Consoleというのもあってこれはパソコン以外のPDAとかを想定しているらしが、
よく分からなかった。まぁ、普通にWebで使うのならHTMLレンダラだけですよって感じか。



・オプション'tabsize'
は、タブをいくつの&nbsp;に変換するかの指定
itohさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (4346)



 





メインメニュー

カテゴリ一覧

Google Adsense

うぇブログ カレンダー


XoopsCube Ring
Amethyst Blue - BULLETIN


.