rawurlencode()和urlencode()在CodeIgniter中不起作用

时间:2011-11-17 01:01:42

标签: php codeigniter urlencode

我正在尝试将字符串编码为安全URL以用于通用目的,并且在使用CodeIgniter时rawurlencode()和urlencode()都不起作用。我已经使用过它们,并且使用直接的PHP可以很好地工作,但无论出于何种原因,它都不起作用。我无法找到任何有这个问题的人,因此没有解决方案。

代码:

<a href="/search/degree/<?=rawurlencode($row->degree)?>" class="element_link"><?=$row->degree?></a>

它只是作为纯文本传递,空格未转义和所有内容。

我期待着我能够得到的结果:

<?php echo rawurlencode('http://kchason.com'); ?>

优点:http%3A%2F%2Fkchason.com

但: <a href="/search/degree/<?=rawurlencode($row->degree)?>" class="element_link"><?=$row->degree?></a>

给我举个例子:'localhost / http://kchason.com',这显然是不安全的,不起作用。

1 个答案:

答案 0 :(得分:5)

我知道这是一个老问题。但我正在处理同样的问题。我所做的是:

<强>编码

<?php echo urlencode(base64_encode('http://kchason.com')); ?>

<强>解码

<?php echo urldecode(base64_decode('http://kchason.com')); ?>

您使用base64_encode删除任何会导致Codeigniter问题的网址部分,然后使用urlencode=添加到base64_encode的任何{{1}}进行编码输出结束。