我在這裏是新的,我需要你的幫助。 我開始玩.htaccess和PHP,我遇到了一個問題。 當進行url重寫時,我傳遞給url一個字符串,它是從數據庫中提取的文章的標題。問題在於字符串(標題)中有很多字符在URL中拼寫錯誤。 EG:localhost/news/php%5%是%out 這裏%是空格。我嘗試使用preg_replace格式化每個標題,並用' - '替換每個空格,但是有很多字符,我想知道是否有任何方法在沒有preg_replace的情況下執行此操作,因此任何字符串都可以用於查詢。 在news.php中,我從url中獲取字符串,並將其用於數據庫中的查詢,從中提取整個文章的正文。如何爲數據庫查詢格式url
RewriteRule ^news/([a-zA-Z0-9._]+)/?$ /news.php?news_title=$1
這是我的.htaccess文件,以便在news.php我通過$ _GET獲得「news_title」變量,然後查詢數據庫,找到與該標題articol。 所以我的問題是,我做這一切都錯了嗎?有沒有其他的方式來做到這一點?我僅在兩天前開始使用htaccess,並希望讓我的網站更友好。 我希望我的問題很清楚。 感謝所有幫助我的人。
只是一個例子,這是我用改造正常平鋪在不會與符號變化的字符串(;放大器,%等)的URL
function generateUrl($url) {
$v1 = preg_replace("/[\s\:\;\,\_\'\`\"\?\!\%\(\)\+\=\#\@\[\]\{\}\/]/", "-", $url);
$v2= preg_replace('/[-]{2,}/', '-', $v1);
$v3 = preg_replace('/^[-]/', '', $v2);
$final = preg_replace('/[-]$/', '', $v3);
return $final;
}
該字符類中實際需要轉義的唯一東西是'/'。我個人更喜歡這樣做:'$ urlSlug = trim(preg_replace('/ [\ W _] + /',' - ',$ urlSlug),' - ');'以便任何非字母字符序列變成單個'-' – DaveRandom 2012-08-10 14:40:19