URI class

在 CodeIgniter 跟 Kohana 這兩個 framework, 在網址傳遞變數時, 都不是透過 query string 來傳遞變數, 而是用所謂比較漂亮網址來取得變數, 例如:

以往 PHP 在傳遞變數的方式為:

http://tzangms.com/user.php?name=tzangms

而 CodeIgniter 的方式則是像這樣

http://tzangms.com/user/tzangms

使用 framework 的網址漂亮許多, 看起來也比較直覺, 如果有使用 CI 的人就會知道, 這類的網址是透過下面這個方式來取得變數:

$this->uri->segment(2); // 取得 'tzangms'

所以我實作了一個 URI class, 透過取得 PATH_INFO 之後, 將其分段後取得需要的變數:

``` class Uri
{ public static function segment($num, $default = false) { if (arraykeyexists('PATHINFO', $SERVER)) { $pathinfo = trim($SERVER['PATH_INFO'], '/');

http://tzangms.com/user/tzangms

}

`` 原本 CodeIgniter 都是用$this->uri->segment(2)` 的方式, 我個人覺得太囉唆, 所以把這個 URI Class 的 segment method 寫成 static 的方式, 就可以這樣存取:

uri::segment(2)

或者是當抓不到值的時候, 甚至可以指定預設值

uri::segment(2, 'guest')

預設值這個功能可以用在哪邊? 用在做分頁 (pagination) 的時候也很適合 XD 通常沒有指定哪一頁的話, 就會是第一頁之類的。

當然 Uri 還有其他的功能可以寫, 不過最基本就是這個了, 透過網址來取值之類動作。

tzangms

Read more posts by this author.

Subscribe to Oceanic / 海海人生

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!