我使用一種方法來清理用戶提交的字符串(問題)到一個url。 它除了字母數字之外的所有內容都被刪除,並用破折號替換空格。在mysql或php中清除網址
現在我需要在我的mysql數據庫中找到正確的行,當該URL被調用時。
例如: - 網址:website.bla /什麼 - 是 - 這
應該找到自己與如表中的一行這個值
「什麼是這個??????」
我想在URL中使用ID有點像:
website.bla/32423 /什麼 - 是 - 這
website.bla /什麼,是this_32423
但它的客戶請求,應該沒有額外的數字,因爲SEO。
因此,扭轉清潔方法是不可能的。 我可以做的是循環訪問我的數據庫中的每個條目,並使用sanitize方法,看看是否與url匹配,但我認爲當db變大時會很愚蠢。
while ($row = mysql_fetch_array("SELECT * FROM questions"))
{
if ($url == sanitize($row["question_text"])) return $row;
}
我也可以「重建」是消毒方法在mysql中有很多鏈接的MySQL替代(), 但我認爲那將是很容易出錯。
"SELECT * FROM questions WHERE Replace(Replace(Replace(REPLACE(question_text,'%',''),'&','')...
所以我目前的想法是隻使用sanitized字符串作爲我的分貝主鍵。
這是一個很好的方法,還是有一些其他的,更好或更標準化的方式呢?
我會創建一個索引,不像MySQL索引,但像每個搜索引擎索引單詞及其外觀 – DanFromGermany
我不認爲有任何客觀證據表明URL包含id會損害SEO。相反,我認爲這是一種誤解,因爲聲稱具有參數大的網址根本不會提供關於資源的語義價值,因此可能會被認爲對SEO工作有害。隨着時間的推移,人們開始混合起來;無意義的參數是壞的,id是一個參數,因此id的是壞的。 – Mathew