【发布时间】:2019-04-06 09:52:19
【问题描述】:
在 CodeIgniter 中,url_title 函数将“title”字符串作为输入,并创建一个带有“分隔符”(破折号或下划线)的人性化 URL 字符串。
目前,删除单引号的功能。在法语中,单引号(撇号)是一个单词分隔符。
例如:“L'apostrophe”的预期 slug 是“l-apostrophe”,而不是“lapostrophe”当前是 url_title 函数的输出。
我想更新以下源代码(/system/helpers/url_helper.php - 第 493 行):
$trans = array(
'&.+?;' => '',
'[^\w\d _-]' => '',
'\s+' => $separator,
'('.$q_separator.')+' => $separator
);
由于我不熟悉 RegEx,如果有人可以帮助我在数组 $trans 中添加单引号以便将单引号转换为分隔符,那就太好了。
【问题讨论】:
-
尝试将
[^\w\d _-]更改为[^\w\d' _-]和\s+更改为[\s']+ -
它不起作用,因为 RegEx 已经在引号中。
-
如果你试图逃避它呢?
[^\w\d\' _-]和[\s\']+ -
是的,它可以工作,并且将单引号更改为双引号也可以完成这项工作。但我更喜欢按照你的建议逃避它。你能简单解释一下这两条线背后的机制吗?
标签: regex codeigniter-3 slug slugify