Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

Apache2 Filter版PHP5に続いて他のFilterを実行する

PHP5をApache2 Filterとしてbuildした場合、PHPの処理の後に他のFilterを繋げようとしても実行されない気がするんですが、どうでしょう?>識者の方
Apache2.2.6+PHP5.2.5でしか確認していませんが、

LoadModule php5_module modules/libphp5.so
<Location />
    AddOutputFilter PHP;INCLUDES php
</Location>

な設定で

<?php
echo '<!--#include virtual="/path/to/include_file.html" -->';

というスクリプトを実行すると、SSIが実行されずそのまま表示されます。Apache2.2.6+PHP4.4.8では、期待通りinclude_file.htmlの内容が挿入されます。
PHP5.2.5とPHP4.4.8のsapi/apache2filter/sapi_apache2.cを見てみると、かなり違うコードになっていますが、

static int php_output_filter(ap_filter_t *f, apr_bucket_brigade *bb)
{
          :

    b = apr_bucket_eos_create(f->c->bucket_alloc);
    APR_BRIGADE_INSERT_TAIL(pbb->bb,  b);

    /* Pass whatever is left on the brigade. */
    return ap_pass_brigade(f->next, pbb->bb);
}

あたりでEOS(End Of Stream)を足しちゃってるので、次のFilterでstreamからデータが取れないとかそういう事なんですかね。だとすると、PHP5.2.0からダメっぽいなぁ。
まあ、元々EXPERIMENTAL扱いだし、PHPをFilterとして使う(使う必要がある)場面って思いつかないので、どうでも良いと言えば良いんですが、ちょっと気になったもので。。。

追記(2008/02/22 00:25)

肝心のPHPコードがうまく表示できていなかったのを修正しました。