Я хочу доставить URL, используя Post в HTML / PHP с codeIgniter.Поэтому я вывожу свой BASE64-кодированный URL-адрес в скрытом поле, поскольку URL-адрес сканируется со страницы ответа Googles, и в URL-адресе может содержаться практически любой символ.Поскольку я буду использовать свой веб-сайт только на локальном сервере (это инструмент SEO для моей компании), я хочу включить любой символ в данных POST.Я уже пробовал это с $config['permitted_uri_chars'] = '';
, но это не сработало.Я получил ошибку «Запрещенные ключевые символы», потому что строка Base64 содержит =
.
Я использую CodeIgniter 2
Правка:
Ответ Фивелла был правильным,Благодарю.Итак, для заинтересованных людей я взял код по ссылке Fivell выше и написал небольшой класс для CodeIgniter.Для этого добавьте файл с именем Base64
в папку приложения / библиотеки и вставьте этот код:
<?php
class Base64 {
function url_encode($url) {
$data = base64_encode($url);
$data = str_replace(array('+','/','='),array('-','_',''),$data);
return $data;
}
function url_decode($url) {
$data = str_replace(array('-','_'),array('+','/'),$url);
$mod4 = strlen($data) % 4;
if ($mod4) {
$data .= substr('====', $mod4);
}
return base64_decode($data);
}
}
?>
, затем вы можете использовать его в любом контроллере, загрузив библиотеку с помощью $this->load->library('base64);
и en- или расшифровать URL с помощью $this->base64->url_encode($url)
или $this->base64->url_decode($url)