Codeigniter 的 url_title() 将 UTF8 字符更改为指定的拉丁文

Posted

技术标签:

【中文标题】Codeigniter 的 url_title() 将 UTF8 字符更改为指定的拉丁文【英文标题】:Codeigniter's url_title() change UTF8 Characters to specified Latin 【发布时间】:2012-01-18 02:23:36 【问题描述】:

是否可以让url_title() 产生对这些字符串的改写:

čolić
nešto

进入:

colic
nesto

我相信这对于基于拉丁语的 UTF8 语言以及为非拉丁语语言设置更漂亮和描述性更强的 URL 可能很有用。

【问题讨论】:

明确一点,这与 UTF-8 关系不大。您只想将带有变音符号的拉丁字符转换为没有变音符号的类似拉丁字符。 比如这样:How to remove diacritics from text? 应该是这样。是否可以更改 url_title() 以自动执行此操作,而无需编写其他功能? 我是 CodeIgniter 世界的新手,所以我忘记了我可以扩展助手。感谢您的评论。 【参考方案1】:

只需绑定到 convert_accented_characters 函数:

url_title(convert_accented_characters('čolić'));

【讨论】:

这个函数convert_accented_characters是干什么的? 最好的办法是在此处查找:codeigniter.com/user_guide/helpers/text_helper.html - 它还使用 foreign_chars 配置,因此如果缺少翻译,您可以修改该文件。 我已经使用 CI 快两年了,甚至不知道这个功能。不错! 不要忘记加载两个助手。 $this->load->helper (array ('text', 'url'));【参考方案2】:

我正在使用

$this->load->helper('text');
$string = 'tèst Tést ççÇçandãÃ';
$title = url_title(convert_accented_characters(utf8_encode(strtolower($string)));
// return: test-test-cccandaa

【讨论】:

以上是关于Codeigniter 的 url_title() 将 UTF8 字符更改为指定的拉丁文的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter 的 url_title() 将 UTF8 字符更改为指定的拉丁文

在 codeigniter 中实现 slug

pipeline

mysql查询一随机?

Codeigniter 3 - 从外部 Codeigniter 安装访问会话

在非 Codeigniter 类中加载和使用 Codeigniter 模型