0

Inflector クラスの slug メソッドを呼び出すと、奇妙なエラーが発生します。コードは次のとおりです。

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

私が得ているエラーは次のとおりです。

警告 (2): preg_replace(): コンパイルに失敗しました: オフセット 0 で繰り返すものはありません [CORE/Cake/Utility/Inflector.php、546 行目]

メソッドスラッグは次のとおりです。

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

4

1 に答える 1

1

誰かが答えを探してここに来ている場合、私は私の問題を見つけました:

ファイルのエンコーディングが に設定されておらず、上部の配列内UTF-8$_transliteration項目が正しくエンコードされていませんでした。

于 2015-07-14T10:23:44.540 に答える