我需要能夠在我的網站的URL(該段用於數據庫查詢)的URI段中有空格和括號。所以,我rawurlencode()
一個字符串,然後rawurldecode()
在接收頁面相同的字符串,但它不完全相同。空格很好,但括號留在十六進制字符代碼中。這完全混淆了我的數據庫查詢。任何想法爲什麼rawurldecode
沒有生成傳遞給rawurlencode()
的EXACT字符串?php rawurldecode不會產生相同的字符串傳遞給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
正確的URL的最終URI段被收到如下面的函數
function view_college($college = FALSE)
{
if($college === FALSE)
{//no college provided
redirect('');
}
$college = rawurldecode($college);
在這一點上的參數串已經在形式顯示在上面。所以也許我搞砸了一些東西,或者只是不能指望CI正確傳遞字符串。 :-(思考?
你可以發佈你的編碼/解碼樣本字符串?我無法通過'rawurldecode()'複製括號 - 不能解碼。 – newfurniturey
你的問題不在'rawurldecode()';你的「查看源代碼」中的字符是HTML字符 - URL編碼不會觸及(也不能被複制)。你可以發佈你操縱字符串的代碼(編碼/解碼/回顯),還可以列出你使用的瀏覽器? 'htmlentities()'和'html_special_chars()'不要對括號進行編碼 - 所以這很有趣! – newfurniturey
@newfurniturey也許不那麼有趣,因爲它看起來可能是框架的結果。對不起: -/ – dgeare