我正在尝试将字符串编码为安全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',这显然是不安全的,不起作用。
答案 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}}进行编码输出结束。