我使用的是friendly_urls,並希望有一個sqlfield'friendly_url',這將取決於字段'標題'。所以,如果我的標題字段是「這是我的標題」,我的friendly_url字段將是「this_is_my_title」。MySql規範化的字符串
的問題,而作爲一個葡萄牙人的網站,標題字段經常有像字符「C」,「A」,「E」,等...
什麼是最好的方式(在MySQL如果可能的話,如果有必要的話),將「AntónioGirão」變成「antonio_girao」?
非常感謝您
我使用的是friendly_urls,並希望有一個sqlfield'friendly_url',這將取決於字段'標題'。所以,如果我的標題字段是「這是我的標題」,我的friendly_url字段將是「this_is_my_title」。MySql規範化的字符串
的問題,而作爲一個葡萄牙人的網站,標題字段經常有像字符「C」,「A」,「E」,等...
什麼是最好的方式(在MySQL如果可能的話,如果有必要的話),將「AntónioGirão」變成「antonio_girao」?
非常感謝您
強力方法是使用strtr做就地置換:
strtr($string, "ÀÁÂÃÄÅàáâãäåā ", "aaaaaaaaaaaaa_")
你可以在MySQL using triggers但我想這將是您更輕鬆地使用PHP這樣做來完成。這裏的Doctrine_Inflector::urlize()
方法可以從字符串中刪除/替換不需要的字符。你可以使用它。
你可能想搜索「鼻涕蟲」,這是基於「this_is_my_title」 URL段的常用名稱一個字符串。這樣做有時被稱爲「slugifying」:) – 2011-02-16 16:52:35
[MySQL支持在特定列上設置排序規則](http://dev.mysql.com/doc/refman/5.0/en/charset-column.html),所以你可以將其設置爲不包含您列出的口音的排序規則。從理論上說,它應該存儲沒有口音的字符,但首先要測試。順便說一下:URLS中的空格會被轉換爲每個空間的「%20」 - 下劃線不是必需的。 – 2011-02-16 16:54:34