Cakephp Inflector :: slug()方法出错

时间:2014-02-03 14:00:17

标签: cakephp cakephp-2.3 slug inflector

调用Inflector类的slug方法时出现了一个奇怪的错误。这是代码:

Inflector::slug('foo', '-');

我得到的错误是:

  

警告(2):preg_replace():编译失败:无需重复   offset 0 [CORE / Cake / Utility / Inflector.php,第546行]

这是方法slug:

public static function slug($string, $replacement = '_') {
    $quotedReplacement = preg_quote($replacement, '/');

    $merge = array(
        '/[^\s\p{Ll}\p{Lm}\p{Lo}\p{Lt}\p{Lu}\p{Nd}]/mu' => ' ',
        '/\\s+/' => $replacement,
        sprintf('/^[%s]+|[%s]+$/', $quotedReplacement, $quotedReplacement) => '',
    );

    $map = self::$_transliteration + $merge;
    return preg_replace(array_keys($map), array_values($map), $string);
}

任何想法导致错误的原因是什么?

其他信息:http://book.cakephp.org/2.0/en/core-utility-libraries/inflector.html

1 个答案:

答案 0 :(得分:1)

如果有人来这里寻找答案,我发现了我的问题:

文件的编码未设置为UTF-8,并且顶部数组中的$_transliteration项目未正确编码。