Skip to content

Latest commit

 

History

History
262 lines (196 loc) · 10.1 KB

File metadata and controls

262 lines (196 loc) · 10.1 KB

������ (NAME)

Apache::Filter - �����勉����潟����í�勐�阪�����紊���

网�荀� (SYNOPSIS)

#### httpd.conf ���:
PerlModule Apache::Filter
# ������������ - ��������壔����潟����í�с�壔�ŝ�����

<Files ~ "*\.blah">
 SetHandler perl-script
 PerlSetVar Filter On
 PerlHandler Filter1 Filter2 Filter3
</Files>

#### Filter1, Filter2, ��������� Filter3 ���:
$r = $r->filter_register();  # 綽����
my $fh = $r->filter_input(); # 篁紙�� (input FH ��壚��荀���������������ŝ��)
while (<$fh>) {
  s/ something / something else /;
  print;
}

#### ��ャ�勖�号��:
$r = $r->filter_register();
my ($fh, $status) = $r->filter_input(); # ��鴻����若�帥�号����宴�勐��緇�
return $status unless $status == OK;
while (<$fh>) {
  s/ something / something else /;
  print;
}

茯㋛�� (DESCRIPTION)

��堺�㋘�勉�ŝ����㋘�若�激�с�喝����壔��Filter1, Filter2, ��������� Filter3 ��勐�������潟����í� $r->filter_input() ��勐�若�喝�冴�����篏������������<�ゃ�˨����潟����˨��菴������с�����������Filter1 ��吾�壔�������<�ゃ�˨����潟����˨�壔�ŝ�壔����鴻����������������<�ゃ�˨�����������Filter2 ��吾�壔�� �����<�ゃ�˨����潟����˨�� Filter1 ��� STDOUT �����吾����冴����������⓾�勉����勉����˨�帥�障����� Filter3 ��吾�� Filter2 ��� STDOUT �����吾����冴����������⓾�勉����勉����˨�帥�障�����Filter3 ��勐�阪���� ��贋・�����í�⓾�吟�̬�������障�����

Filter1, Filter2, ��������� Filter3 ��≪�吾�ャ�若�˨�� �����我�劫�� ��勰����т研��潟�障����� Apache::OutputChain ��勌研��潟����������с����������������壠嚳��х����с������������� 羈���������⓾��������������

�����ŝ����������勉�≪�吾�ャ�若�˨�������������c����������������ŝ����壔�鴻�帥�潟����≪�㏍�潟�勉����潟����í�������⓾�� ��������☀��膣���������⓾�������с�若�喝����у�宴�������������潟����í����ñ����с����障����������ŝ����� �����с�若�喝�������������壔����ゃ�� �����⓾�� �����潟����í�������с�若�喝����� "�����c�˨�粋��茘�" ��������勉����������ŝ����<����������壔����������� STDOUT ��吾�勐�阪��������紮������������˨��筝�綺 $r->filter_register() ���腆阪�������若�喝�冴����⓾�����������腆肴�������⓾�������������������������� �����с�若�喝����с����c��筝���ゃ�勤��膣���с��������������������絎�茵���������勉�˨����ŝ�若����若����������壩����í�ŝ�� ������������

�憜�����筝�荐���勐�㋞����≪�吾�ャ�若�˨�壔����c�˨�粋��茘������障�����篁���˨�����絖���ャ�с������� ��í�����腱������������⓾��������������

Apache::Registry (���罌宴�������⓾����� Apache::RegistryFilter �����ñ��������������)
Apache::SSI
Apache::ASP
HTML::Mason
Apache::SimpleReplace
Apache::HTML::ClassParser (HTML_Tree �����c�鴻����ŝ����ャ�若�激�с�潟�勌�����)

��<�純����� (METHODS)

Apache::Filter ��� Apache ��勉�泣����壔�í�鴻�ŝ�勉�у����⓾�� Apache ��<�純����������ñ���櫝�純�с�����

�����勉�≪�吾�ャ�若�˨�壔�������勛�㋝�ŝ�� Apache �����潟����í�壔�í�鴻��篏������障����� - �������������������� Apache:: ��壔�í�鴻�後江��ゃ����勉�<�純��������菴遵�������障����������������c�⓾����������壔�障����˨�� $r ��ŝ�壔����鴻����ŝ����吾�с�壔����御����醇�с��菴遵����������������� mix-in ��������宴�若�吾�с�����

  • $r = $r->filter_register()

    �����⓾�勉����c�˨�粋��茘���≪�吾�ャ�若�˨�� Apache::filter ��������勉����潟����í�������ï���� �����勉����c�˨�帥��絮�����櫝�純�˨�������������☗�阪����������ゆ��緇���˨����í�⓾�吟�梧�������鴻����ŝ�勉�� ���茯���ュ櫝�純�˨�������������� 腆阪����˩��綺⓾����勉�<�純����������若�喝�冴����ŝ�������違�ŝ����ŝ�����

  • $r->filter_input()

    �����勉�<�純�������壔�⓾�若�吟�˨�������ŝ�壔����鴻����������������<�ゃ�� ($r->filename)��� ��障����壠����勉����c�˨�帥�勐�阪����勉�í�<�������勉����<�ゃ�˨����潟����˨��菴������障����� ��������鴻�˨�í�若�潟�潟����㏍�鴻����у�若�喝�冴����������������ŝ����� $r->filename ��������障�頳���ゃ�������� ��������������勉����í�������������ŝ����̥�ャ�������� Apache ��鴻����若�帥�鴻�潟�若�� (OK, NOT_FOUND, ��障����� FORBIDDEN) ���緇���������������с����障�������������������с�ŝ�������域����������� �����<�ゃ�˨����潟����˨�� undef ��с�����������

  • $r->changed_since($time)

    �憜����勐�ュ����� $time ������紊���������������⓾����������遵�ゃ��篏帥�c�☀�������障����� �憜����勐�ゆ�㊤�堺����壩❶��勉�������ŝ����勉�с�����: �����<�ゃ�˨�� $r->finfo ��˨����c�☎ず�����勉��筝�������������������������紊���眼������� �����ŝ����������������⓾����с�若�喝����˨����������勐�������c�˨�帥�����deterministic (筝�荐�������) ��с����������с�������勐�翫����壠�純��菴������障�������違�ŝ����亥�����菴������障�����

    �����勉�<�純�������壔�㏍�c����激�ユ��罕���勐���憗�˨�������☗醜腴���ゃ�������������潟�������⓾�障�����

    茘☗��: changed_since() ��� deterministic() ��<�純�����������filter_register() ��� 緇���� �����ゃ����若�喝�冴�������障�������������� Apache::Filter ��������с�若�喝���� ��í�勉����潟����í���憜��絎�茵�筝㏍�������ゆ�㏍�������������̥��茖純�勉�˨�⓾�潟����<�純����������ñ�������⓾�������� �����������勉�˨�若����喝�若�喝�冴����壔�˨�⓾�潟����������<�������<����˩恒�����⓾����障����������с�����

  • $r->deterministic(1|0);

    �����若�吾�с�� 0.07 ��˨�⓾��"羆阪��茫����" ��ŝ����c�˨�帥�勉�潟�潟�祉����������泣����若����������障�������� deterministic �����c�˨�帥�壔����勐�阪�����絎������˨����勐�ュ�������<�ゃ�˨�勐��絎� ($r->filename �����<�ゃ�˨��篁���勉����c�˨�帥�勐�阪����с����������í�����) ��˨����c�〠浦絎���������� ��������☖�����篁���勐�����荀�膣���˩��絖������ŝ�������勉�с�����箴������違�������阪�����紊ф��絖���̥�眼�������c�˨�帥� deterministic ��с�������������若�吾����ヤ����鴻�帥�潟�����菴遵�������������������傑�������у櫔�������������ャ����ŝ�� �����若�帥����若�劫��������篏�������茯帥�鴻����������壔����������с�壔�������障��������

    ��í�������⓾�����������荀���ŭ��������鐚������ŝ�����筝�荐���勐��臂í�������c�⓾�������������障��������:

    <Files ~ "\.boffo$">
     SetHandler perl-script
     PerlSetVar Filter On
     PerlHandler Apache::FormatNumbers Apache::DoBigCalculation
     # 筝�荐���壠�順�í�勉�≪�吾�ャ�若�˨�с�������������c�⓾�障�������㏍��
    </Files>

    FormatNumber ��≪�吾�ャ�若�˨�� deterministic ��с��������DoBigCalculation ��≪�吾�ャ�若�˨�� 絎�茵���̹�傑�����������������篁勐�������☖�����������DoBigCalculation ��≪�吾�ャ�若�˨�壠�ュ�������<�ゃ�˨�� �����c�鴻�壚����у����眼�������⓾����ŝ�������勉�������˨��篁������勛����������㏍�c����激�ャ�с����障����� FormatNumbers ��≪�吾�ャ�若�˨�������������˨�������勛�������壩�∝�ャ�ф����������⓾�������с�����������������

    ��≪�吾�ャ�若����������壔����勉�������ŭ�������̬����������с��������:

    sub Apache::FormatNumbers::handler {
       my $r = shift;
       $r->content_type("text/html");
       my ($fh, $status) = $r->filter_input();
       return $status unless $status == OK;
       $r->deterministic(1); # ��������祉�����; ��������í�˨����壠�
       
       # ... ��������ゃ����勖�後�鎘�臂í��������STDOUT ��後�阪��
       return OK;
    }
    
    sub Apache::DoBigCalculation::handler {
       my $r = shift;
       $r->content_type("text/html");
       my ($fh, $status) = $r->filter_input();
       return $status unless $status == OK;
       
       # �����勉�≪�吾�ャ�若�˨�� %chache_time ��� %cache_content ��������激�ャ����ñ�����
       # ��㏍�c����激�ユ��罕����絎��憗����⓾����障�����
       my $time = $cache_time{$r->filename};
       my $output;
       if ($r->changed_since($time)) {
           # <$fh> ������茯㏍�帥����������у隈紊с�ʋ��膊����絎�茵�������STDOUT ��後�阪��
       } else {
           print $cache_content{$r->filename};
       }
       
       return OK;
    }

    茘☗��: changed_since() ��� deterministic() ��<�純�����������filter_register() ��� 緇���� �����ゃ����若�喝�冴�������障�������������� Apache::Filter ��������с�若�喝���� ��í�勉����潟����í���憜��絎�茵�筝㏍�������ゆ�㏍�������������̥��茖純�勉�˨�⓾�潟����<�純����������ñ�������⓾�������� �����������勉�˨�若����喝�若�喝�冴����壔�˨�⓾�潟����������<�������<����˩恒�����⓾����障����������с�����

��������� (HEADERS)

�����勉�≪�吾�ャ�若�˨�勌札�����勉�ŝ�ŝ�若�鴻�с�壔��$r->send_http_header() �����若�喝�冴��篋��� ��演�冴�с����������ŝ����ŝ��������/緇���勉����c�˨�帥����障�������������������冴������櫝�醇�с����������� �����勐�翫����������ŝ����奝��篆<�����緇���������◑����違�勉����������������ゃ�������˨�ŝ����������с����� �憜����勉�ŝ�ŝ�若�鴻�с�壔����ŝ����夌亜�����˨�������������������障������������憜����勉����c�˨�帥�� ���緇���勉����c�˨�帥�с�������違�������������壔����ゃ��������������������������篁ュ����с������� send_http_header() ��壚����������障��������

羈���� (NOTES)

�����ŝ����壔��网�荀� (SYNOPSIS) ��х����� "PerlSetVar Filter On" �����吾����⓾�����篋���� 荀������⓾�������с����������������勖����宴�壠�������壔����勉�≪�吾�ャ�若�˨�т戎�����������������������ʃ昆��勉����c�˨� (Apache::SSI ��勉��������) ��≪�吾�ャ�若�˨�˨����c�☖戎��������障�����腱���壔�������˨�� �����c�˨�帥�������≪�吾�ャ�若�˨�壔�������������� $r->filter_register �����若�喝�冴����鴻�������í�������� 荀���ゃ�������鴻�ゃ�������������⓾�������勉����í�<�若�帥����ñ��������������������罅������障����������������ŝ�������� ��������壔����違����遺��荀� - �����ŝ�����篏������勉����c�˨�帥�ŝ�潟�違��筝�綽�荀���ŝ�������с�������� ���膣���� $r->filter_register ��夌����������若�喝�冴����˨����������������ŝ�ŝ�若����������������������� $r->filter_input ��� $r->filename �����<�ゃ�˨����������号����������〠��菴���˨�с����障�����

���絽吾�̹��荀�: ��������鴻�帥����壔�������������潟����í����с�若�喝����勌����ゃ�勉����潟����í�� Apache::Filter ���篏帥����翫����������������壠����⓾��������篏帥����ŝ����⓾�壔�ŝ����障����� (THEY ALL MUST USE IT)��� ��������壔�������������⓾�� $r->filter_register ���腆阪����˩��綺☗�若�喝�冴����ŝ����⓾�壔�ŝ����ŝ��篋���� �����潟����障�������������с�ŝ�������違��Apache::Filter ��壔����潟����í�勐�阪�������ï�������������с�������� �����ゃ����í�⓾�吟�後�阪�������ŝ�ŝ�若�鴻����鴻�������ャ��緇���ŝ����с�����������

��������c�˨�� (���緇������ゃ��) ��勐�阪����壩❶��勉����c�˨�帥�御検��������������˨�<�≪�ŝ�̬��腥������������勉�с�� 紊с����ŝ����若�吾�˨�壠ぇ�����ŝ�<�≪�ŝ��綽�荀���˨�ŝ����障�����Apache::OutputChain ��壔��筝�綺⓾� print() ��勐����違�ŝ�鴻��������筝���ゃ�勉�≪�ゃ����������<�≪�ŝ�˩�����������綽�荀������������������ŝ�勉�с�� �����勐�馹���壩�宴����⓾����ŝ����с��������篁������������障�� (��������������勉����c�潟�壔����㋜�������⓾����c�˨�帥�������� ��������ゃ����勉����c�潟�壔�������吟�潟�潟����潟�������ï����̬В�����������ŝ����с��������)��� 篁�緇���勉����若�吾�с�潟�с�������勐����蚊�勖�号�����荀���冴��������紊с����ŝ����若�吾�������c�鴻�壚���� ��㏍�c����激�ャ����⓾�<�≪�ŝ�������̬�������ŝ����壔�ŝ����ŝ����������˨�������������������障�������� 腱������壔����������馹���с����������í��������茯帥�鴻����с�����������

篋���ゃ�勉����c�˨�帥�勌����壔�������勉����c�鴻����ŝ����ャ�若�激�с�潟�� t/ ��泣�������c�㋘�壔����ŝ� ���箴���������⓾����障��: UC.pm ��壔����勐����⓾�勐�ュ�����紊ф��絖����紊����������Reverse.pm �� �����勐�ュ����勤�������������阪�������障�����

���緇���̬⑥���: �����若�吾�с�� 0.09 ��с�夌����壩��腓榊����� Content-Length ��� undef �� ��祉��������紮������障����������������壩�í��罧級����勉����c�˨�帥��筝�罩g∈��˨�潟�潟����潟����激�� ��祉�������c�潟�違����⓾����障�������������紙②�����障�������������壔����������勐���� 綛障�ゃ����勉����c�˨�帥��絖����������������罧���ñ∈絎���˩����ï����˨�ŝ����障����������勉������� �����������ŝ�������潟�潟����潟����激����祉�������������≪�吾�ャ�若�˨����吾�������翫�������������� $r->filter_register ��若�喝�冴����� 緇���� 絎�茵������鴻����с�������������������潟����障�����

茵���������� (TO DO)

腱���������ï����� Content-Length ���������������篆≦�堺�ャ����������˨�����������������腟���阪���� �����������<�≪�若�����菴遵�����������[gozer@hbesoftware.com (Philippe M. Chiasson)]

������ (BUGS)

��������夌憜��絎�茵������⓾����������潟����í�������с�若�喝����ф��緇���勉����潟����í�с��������������茹c����������� 綛障�ゃ����勉����������ʃ��膣����篏帥����障�����腟������������⓾��絎�茵������˨����潟����í�ŝ�鴻����� (push_handlers 膈����篏帥�c��) ��宴����潟�若����壠ぇ羞隙恒���綣����莎激�������с����������������ŝ����� 篏�������荅⓾�������˨����潟�若�����絨����������荅勛刈�����⓾�������������������������ŝ��������罅���������c�⓾�������� ��í�������ャ�������⓾��������������

0.07 ��с�壔��Apache::Filter ��� $r->filename ��������c�㋘�壔����ŝ��������腓冴�������� ��ɱ�������� DECLINED ���菴������с�������������������壔����<�������ð����í�勐�翫����˨�� �����ŝ�����篏���������������� (mod_dir �����ŝ�壔����鴻�����綣����������������������) �����������с�������������с�������ゃ����c�㋘�壔����ɱ�☎����� "罩c�����" ��号��������茹c�������勉� �����ŝ���ウ�����������������������������с�� - 罩c�������号����壔����c�㋘�壔����ŝ����ゃ�潟�������壔�劫�������� �����潟����í�������c�˨�帥�˨�ŝ��篋����荐怨檽�������������с�������������������壚��筝��櫝�純�с�������障�� �����ŝ����奝�ï����� mod_autoindex ��勉�������� ��� mod_perl ��勉�ゃ�潟�������壔�剛���������� ��九勝���羝<��篋���壠�堺�ャ�障�����������罅����罩�菴������障�����

腱���壔����������ŝ��������������篏帥�����PERL_STACKED_HANDLERS �����ŝ�潟�˨����ŝ����c�������˨�� 篏����莎激����������障�с�虁����勉����⓾����障����������������������勉�������ŝ�������壔����ŝ����т�����������

篏���� (AUTHOR)

Ken Williams (ken@forum.swarthmore.edu)

���篏�罔� (COPYRIGHT)

Copyright 1998,1999,2000 Ken Williams. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

������莖���� (SEE ALSO)

perl(1).

膺肢┳���

莪桁吤�㋙�� <taniguchi@users.sourceforge.jp>