如何将非单词字符添加到Inflector::slug() for CakePHP 1.2


How to add non word characters to Inflector::slug() for CakePHP 1.2?

CakePHP 1.2 Inflector类有一个slug()方法,可以将空格转换为下划线,将重音字符转换为非重音字符,并删除非单词字符。

我有一个特殊的双引号["answers"]没有被删除的情况。

我可以看到我需要放置引号字符的行,但我不知道使用什么工具来将字符放入正确识别的格式中。(例如,€™是一个特殊的单引号,被转换为空格并最终被删除)。

您可以在将非ascii字符放入影响器之前删除它。

<?php $output = preg_replace('/[^('x20-'x7F)]*/','', $input); ?>

我最终的工作是使用Chrome的编码功能来获得我需要的字符。通常情况下,网页使用的是UTF-8字符集,所以我强迫Chrome用ISO-8859-1显示,它将"in"转换为""。点击菜单,工具,编码,然后选择编码。

当实际改变Inflector::slug()时,将'/[^'w's]/' => ' ',行改为'/–|“|’|â€|[^'w's]/' => ' ',

我已经确定将[^'w's]转换为最后一个,而将[€s]转换为最后一个。如果[^'w's]较早,则€被转换为空格,而使用该空格的其他特殊字符不会被转换。与欧元之间也有类似的交易。

使用的替换字符串不是详尽的。目前它满足特殊的破折号,特殊的双引号,特殊的双引号和特殊的单引号