FuelPHPでURLにドットが含まれる場合

FuelPHPでhttp://example.jp/tests/uri/index/abc@example.jpのようなURLの場合、最後のURIセグメントはabc@exampleとなり、ドット以下の文字列が取得できません。

これは、ドット以下が拡張子とされるFuelPHPの仕様です。

拡張子はInput::extension()で取得することができます。

以下のコードの場合、

class Controller_Tests_Uri extends Controller
{
    public function action_index()
    {
        Debug::dump(Uri::segments());
        Debug::dump(Input::extension());

        return '';
    }
}

結果は、以下のようになります。

APPPATH/classes/controller/tests/uri.php @ line: 7

Variable #1:
  (Array, 4 elements) ↵
     0 (String): "tests" (5 characters)
     1 (String): "uri" (3 characters)
     2 (String): "index" (5 characters)
     3 (String): "abc@example" (11 characters)


APPPATH/classes/controller/tests/uri.php @ line: 8

Variable #1:
  (String): "jp" (2 characters)

Date: 2013/10/29

Tags: fuelphp