我需要能够在我的站点 URL 的 URI 段中包含空格和括号(该段用于 DB 查询)。所以,我rawurlencode()
是一个字符串,然后rawurldecode()
是接收页面中的同一个字符串,但它并不完全相同。空格很好,但括号留在其十六进制字符代码中。这完全搞乱了我的数据库查询。知道为什么rawurldecode
不生成传递给的 EXACT 字符串rawurlencode()
吗?
原始字符串 = 康普顿社区学院 (CA)
编码字符串 =
Compton%20Community%20College%20%28CA%29
解码字符串的 vardump 是
string(38) "Compton Community College (CA)"
在查看页面源
"Compton Community College (CA)"
编辑
好吧,显然这可能是 Codeigniter 的事情(我正在使用)。编码
<a href='<?php echo site_url('college/'.rawurlencode($player['college'])); ?>'>
产生正确的网址http://localhost/ff/index.php/college/Compton%20Community%20College%20%28CA%29
最终的 URI 段在以下函数中作为参数接收
function view_college($college = FALSE)
{
if($college === FALSE)
{//no college provided
redirect('');
}
$college = rawurldecode($college);
并且此时字符串已经是上面显示的形式。所以也许我搞砸了,或者只是不能指望 CI 正确传递字符串。:-( 想法?