【PHP】textareaとmb_strlenの改行コード
事象
テキストエリアに入力した文字数と、それをmb_strlen関数で数えた文字数が合わなかった。
原因
改行コードの取り扱いが違う。
詳細
mb_strlen関数は、CRLFの改行コードを2で返すそうです。
なので、受け取った文字列の改行コードを変換してあげてからmb_strlen関数に通してあげることで解決しました。
<?php str_replace(array("\r\n", "\r"), "\n", 文字列); ?>