2011-12-25 51 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?