如何为CakePHP 1.2的Inflector :: slug()添加非单词字符?

时间:2011-12-07 03:52:04

标签: php cakephp cakephp-1.2

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

我有一个案例,特殊的双引号[“和”]没有被删除。

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

2 个答案:

答案 0 :(得分:0)

您可以在将非ascii字符插入变形器之前将其删除。

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

答案 1 :(得分:0)

我最终的工作是使用Chrome中的编码功能来获取我需要的字符。通常情况下,网页上有UTF-8字符集,因此我强制Chrome以ISO-8859-1显示,后者将“转换为”。它是菜单,工具,编码,然后选择编码。

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

我确保最后转换[^ \ w \ s],然后倒数第二。如果[^ \ w \ s]较早,则€会转换为空格,而使用它的其他特殊字符不会被转换。并且有类似的处理 -

使用的替换字符串并非详尽无遗。目前它迎合特殊仪表板,特殊倒置双引号,特殊双引号和特殊单引号。