2011-12-25 50 views
0

我有一個將URL作爲參數的控制器。該URL有正斜槓和一個查詢字符串,它看起來是這樣的:使用CI編碼傳入URL的URL編碼

http://example.com/foo?bar=baz&bar2=baz2

的問題是,該URL來未編碼,也沒有辦法,我可以改變這種狀況。(忘了提,其實我可以編碼前手的URL,那肯定會改變一切)

我想它擊中我的控制器,然後我想回聲出頁面上此網址前編碼的URL。

是否codeigniter有任何內置的方法或什麼.htaccess規則我需要設置來處理這個?

回答

1

砍死周圍一點點,想通了:

你要做的就是編碼網址爲Base64

base64_encode($uri);

如果在URI消息中出現不允許的字符,請轉至application/config/config.php並將$config['permitted_uri_chars']設置爲接受問題字符。在我的情況下,我需要啓用=我的參數。

最後設置PARAM看起來是這樣的:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-='; //added = sign to permit to enable base64 encode 
在控制器端

我只是有一個echo base64_decode($url);

這樣我可以通過幾乎任何字符串到URL段和它的作品。

URL段將被編碼爲一系列數字和字母,並轉換爲在其中編碼了URI的字符串。

:)

(附註:光明節快樂&結婚聖誕節)


由於這一問題的援助

code igniter :: send url as param?