rawurlencode () и urlencode () не работают в CodeIgniter - PullRequest
3 голосов
/ 17 ноября 2011

Я пытаюсь закодировать строку в безопасный 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 Ответ

5 голосов
/ 13 августа 2013

Я знаю, что это старый вопрос. Но я имел дело с той же проблемой. То, что я сделал, это:

Encode

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

Decode

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

Вы используете base64_encode, чтобы избавиться от любых частей URL, которые могут вызвать проблемы с Codeigniter, а затем вы используете urlencode для кодирования любого =, который base64_encode добавляет в конец его вывода.

...