Pages

2016年5月25日水曜日

CakePHP3 文字数チェックで改行コードがWindowsの時は2文字扱いになる

簡単に予想するからに

環境別改行コード

Windows CR+LF
Macintosh CR
Linux LF

って感じで Windows だけ2バイトになってるからだろう。。
って事で Validation.php を確認すると

public static function maxLength($check, $max)
{
    return mb_strlen($check) <= $max;
}
やっぱり。。 って事で AppController.php(デフォルトでは無い?) の initialize() に
array_walk_recursive($this->request->data, function(&$item, $key){
    // 改行コードをLFに統一
    $item = preg_replace("/\r\n|\r|\n/", "\n", $item);
});
を追加して今回は対応。

0 件のコメント:

コメントを投稿

Followers