| Tripletail documentation | Contained in the Tripletail distribution. |
Tripletail::Filter::TEXT - テキスト出力フィルタ
$TL->setContentFilter('Tripletail::Filter::TEXT', charset => 'UTF-8');
$TL->print($TL->readTextFile('foo.txt'));
テキストの出力を支援する。
出力文字コードを指定する。省略可能。
使用可能なコードは次の通り。 UTF-8,Shift_JIS,EUC-JP,ISO-2022-JP
デフォルトはShitf_JIS。
$TL->setContentFilter('Tripletail::Filter::TEXT', contenttype => 'text/plain; charset=sjis');
Content-Typeを指定する。省略可能。
デフォルトはtext/plain; charset=(charasetで指定された文字コード)。
$filter->setHeader($key => $value)
他の出力の前に実行する必要がある。 同じヘッダを既に出力しようとしていれば、そのヘッダの代わりに指定したヘッダを出力する。(上書きされる)
$filter->addHeader($key => $value)
他の出力の前に実行する必要がある。 同じヘッダを既に出力しようとしていれば、そのヘッダに加えて指定したヘッダを出力する。(追加される)
Copyright 2006 YMIRLINK Inc.
This framework is free software; you can redistribute it and/or modify it under the same terms as Perl itself
このフレームワークはフリーソフトウェアです。あなたは Perl と同じライセンスの 元で再配布及び変更を行うことが出来ます。
Address bug reports and comments to: tl@tripletail.jp
HP : http://tripletail.jp/
| Tripletail documentation | Contained in the Tripletail distribution. |
# ----------------------------------------------------------------------------- # Tripletail::Filter::TEXT - ããã¹ãåºåãã£ã«ã¿ # ----------------------------------------------------------------------------- package Tripletail::Filter::TEXT; use strict; use warnings; use Tripletail; require Tripletail::Filter; our @ISA = qw(Tripletail::Filter); # ãªãã·ã§ã³ä¸è¦§: # * charset => åºåã®æåã³ã¼ãã(UTF-8ãã夿ããã) # (çµµæå使ç¨ä¸å¯) # ããã©ã«ã: Shift_JIS # * contenttype => ããã©ã«ã: text/plain; charset=(CHARSET) 1; sub _new { my $class = shift; my $this = $class->SUPER::_new(@_); local($_); # Contentã1ãã¤ãã§ãåºåããããã©ãã $this->{content_printed} = undef; # ããã©ã«ãå¤ãåããã my $defaults = [ [charset => 'Shift_JIS'], [contenttype => sub { # åçã«æ±ºã¾ãã®ã§CODE Refãæ¸¡ãã弿°ã¯åããªãã sprintf 'text/plain; charset=%s', $this->{option}{charset}; }], ]; $this->_fill_option_defaults($defaults); # ãªãã·ã§ã³ã®ãã§ã㯠my $check = { charset => [qw(defined no_empty scalar)], contenttype => [qw(defined no_empty scalar)], }; $this->_check_options($check); $this->setHeader('Content-Type' => $this->{option}{contenttype}); $this; } sub print { my $this = shift; my $data = shift; my $output = $this->_flush_header; if(ref($data)) { die __PACKAGE__."#print: arg[1] is a reference. [$data] (第1弿°ããªãã¡ã¬ã³ã¹ã§ã)\n"; } $output .= $TL->charconv($data, 'utf8' => $this->{option}{charset}); if(length($output)) { $this->{content_printed} = 1; } $output; } sub flush { my $this = shift; if(!$this->{content_printed}) { die __PACKAGE__."#flush: no contents have been printed during this request. (ãªã¯ã¨ã¹ãå¦çã§ä½ãprintããã¦ãã¾ãã)\n"; } ''; } sub reset { my $this = shift; $this->SUPER::reset; $this->{content_printed} = undef; $this->setHeader('Content-Type' => $this->{option}{contenttype}); $this; } __END__