【问题标题】:Error in Cakephp Inflector::slug() methodCakephp Inflector::slug() 方法中的错误
【发布时间】:2014-02-27 01:19:20
【问题描述】:

调用 Inflector 类的 slug 方法时遇到一个奇怪的错误。代码如下:

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

我得到的错误是:

警告 (2): preg_replace(): 编译失败:没有可重复的地方 偏移量 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

【问题讨论】:

  • 什么蛋糕版本?在 2.4.5 中工作正常
  • 版本 2.3.0。我试试用2.4.5版本的class看看能不能用。

标签: cakephp cakephp-2.3 slug inflector


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 2014-05-23
    • 2018-05-13
    • 2017-12-31
    • 1970-01-01
    • 2018-10-12
    • 2015-07-27
    相关资源
    最近更新 更多