青木 (2011年10月27日 18:02) システムソリューション事業部
みなさん、こんにちは。青木です。
今年(2011年)のプロ野球ドラフト会議をご存知でしょうか。 ドラフト会議が始まるまで、菅野投手は巨人に入団するものだと思い込んでいました。 そんな中で日本ハムが指名し、交渉権を得たのには私も驚きました。
今回はPHPのmb_strlen関数について話をします。
このmb_strlenという関数はマニュアルを見る限り、文字列の長さを得る関数です。 マルチバイト1文字も1を返すと書いてありますので、 私は改行コードについても1を返すものだと思い込んでいました。
しかし、改行コードがCRLF(\r\n)の場合は2を返すということが分かりました。 ちなみにタブは「\t」だから?か1を返します。
対処方法としてはstr_replaceで「\r\n」を「\n」に変換してから mb_strlenに渡してあげれば良いでしょう。
どんな場面でも思い込みは禁物ですね。
【PHP】改行コードをmb_strlenに渡すと2を返します
青木 (2011年10月27日 18:02)
システムソリューション事業部
みなさん、こんにちは。青木です。
今年(2011年)のプロ野球ドラフト会議をご存知でしょうか。
ドラフト会議が始まるまで、菅野投手は巨人に入団するものだと思い込んでいました。
そんな中で日本ハムが指名し、交渉権を得たのには私も驚きました。
今回はPHPのmb_strlen関数について話をします。
このmb_strlenという関数はマニュアルを見る限り、文字列の長さを得る関数です。
マルチバイト1文字も1を返すと書いてありますので、
私は改行コードについても1を返すものだと思い込んでいました。
しかし、改行コードがCRLF(\r\n)の場合は2を返すということが分かりました。
ちなみにタブは「\t」だから?か1を返します。
対処方法としてはstr_replaceで「\r\n」を「\n」に変換してから
mb_strlenに渡してあげれば良いでしょう。
どんな場面でも思い込みは禁物ですね。