geeklogハック

config.phpにてurl_rewriteをtrueにしている場合、

foo.php?f=aaa

foo.php/aaa

となるが、この場合、

foo.php/aaa/bbb

は、ちゃんと"aaa"と"bbb"が値だと認識している。しかし、"aaa/bbb"として取得したい場合は、以下のようにする必要がある。

require_once('lib-common.php');
....
if (isset ($_POST['f'])) {
    $f = COM_applyFilter($_POST['f']);
} else {
    // $_URLというurlクラスがlib-common.php内で作成される。
    // このクラスにはちょうどいいメソッドがないので
    // インスタンス変数をじかにいじる。
    $_URL->_arguments = array(implode("/", $_URL->_arguments));
    // 以下は取得した値の数より少ない配列の場合エラーになるので
    // 事前に上記を行うこと。
    COM_setArgNames(array('f'));
    $f = COM_applyFilter(COM_getArgument('f'));
}