我使用的是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