【发布时间】:2023-03-06 20:53:01
【问题描述】:
我想使用带有 codeIgniter 的 HTML/PHP 中的 Post 来传递 URL。因此,我在隐藏字段中输出了我的 URL 的 BASE64 编码,因为 URL 是从 Google 的响应页面抓取的,并且几乎任何字符都可以在 URL 中。由于我只会在本地服务器上使用我的网站(它是我公司的 SEO 工具),我想在 POST 数据中启用任何字符。我已经用$config['permitted_uri_chars'] = ''; 试过了,但是没有用。由于 Base64 字符串包含 =,因此出现“不允许的键字符”错误。
我正在使用 CodeIgniter 2
编辑:
Fivell 的回答是正确的,谢谢。因此,对于感兴趣的人,我从上面 Fivell 的链接中获取了代码,并为 CodeIgniter 编写了一个小类。为此,请将名为 Base64 的文件添加到您的 application/libraries 文件夹并插入以下代码:
<?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); 加载库并通过$this->base64->url_encode($url) 或$this->base64->url_decode($url) 对url 进行解密或解密,从而在任何控制器中使用它
【问题讨论】:
标签: php codeigniter post base64 codeigniter-2