在CodeIgniter的url_title函数中将单引号转换为分隔符



在CodeIgniter中,url_title函数以"title"字符串作为输入,并创建一个带有"分隔符"(短划线或下划线(的人性化url字符串。

目前,函数删除单引号。在法语中,单引号(撇号(是一个单词分隔符。

例如:">L撇号"的预期段塞是">L撇号,而不是">1lapostrophe",因为它当前是url_title函数的输出。

我想更新以下源代码(/system/helpers/ul_helper.php-第493行(:

$trans = array(
'&.+?;'         => '',
'[^wd _-]'        => '',
's+'           => $separator,
'('.$q_separator.')+'   => $separator
);

由于我不熟悉RegEx,如果有人能帮助我在数组$trans中添加单引号,以便将单引号转换为分隔符,那就太好了。

修改CodeIgniter核心始终是一个问题,以确保升级并与未来版本兼容。我最好建议更新文本助手使用的用于音译|转换的外来字符数组(在/application/config/foreign_chars.php中(。

在数组末尾添加以下行:

'/'/' => ' '

这将在调用convert_accented_characters函数时将单引号('/'/'(转换为空格(' '(。

您可以用[^wd' _-]替换[^wd _-],用[s']+替换s+

这个模式[^wd _-]是一个否定的字符类,它将与'匹配,并将被一个空字符串取代。如果将'添加到现有的字符类,则is将不匹配,也不会被替换。

s+匹配1+个空白字符,这些字符将被分隔符替换。您可以将其转换为字符类[s']+,并重复该操作1次以上。然后这里匹配的将被$separator取代

在您的示例中转义',因为正则表达式已经位于单引号之间。

相关内容

  • 没有找到相关文章

最新更新