-2
我正在構建一個論壇,其中包含您要查看的主題的標題。但如果它包含!那麼它會拋出404錯誤。我知道ASCII字符!是%21,我認爲urlencode()會改變!到%21但它沒有。當我點擊鏈接的網址仍然包含!這是打破了網址。有小費嗎?感嘆號在網址中
我正在構建一個論壇,其中包含您要查看的主題的標題。但如果它包含!那麼它會拋出404錯誤。我知道ASCII字符!是%21,我認爲urlencode()會改變!到%21但它沒有。當我點擊鏈接的網址仍然包含!這是打破了網址。有小費嗎?感嘆號在網址中
我建議你規範你想在url中使用的標題,以便使用起來安全並保持用戶可讀。
$normalizedTitle = trim(preg_replace('/[^a-z0-9]+/', '-', strtolower($title)), '-');
這將打開!TEST!/?TEST?
爲test-test
,並ASF is absolutely awesome!
到asf-is-absolutely-awesome
。
urlencode應該可以工作,但你也可以嘗試rawurlencode() – 2011-05-05 04:58:08
請發佈你的代碼。我只測試了php的['urlencode()'](http://www.php.net/manual/en/function.urlencode.php)函數,它的確將'!'編碼爲'%21'。你的代碼還有其他一些事情要做。 – Asaph 2011-05-05 04:58:14
即時通訊使用這個: urlencode($ forum ['last_post_topic']); 在我的標記中。 $ forum ['last_post_topic']在數據庫中看起來像 Asf太棒了! 但是當我點擊鏈接的URL讀取 ASF +是+絕對+真棒! so urlencode()取代空格,但不是感嘆號 – 2011-05-05 05:14:58