PHP – Windows Macintosh 改行コード

PHP

Windows、Macintosh そしてUNIXでは、それぞれ改行コードが異なります。

これにより、ブラウザなどから入力された文字列の改行を、HTMLでどう表示させるか頭を悩ませることがしばしばあります。

PHPはUNIXのサーバー上で動作させるので、通常、改行は「LF(ラインフィード)」になります。しかし、Windowsの改行コードは「CRLF(キャリッジリターンラインフィード)」となるため、サーバーと改行コードのデータをやり取りする際には気をつけなければいけません。

今回はOSによって異なる改行コードをまとめておきたいと思います。

改行コード

Windows → CRLF改行「¥r¥n」
Macintosh OS9まで→ CR改行「¥r」
Macintosh OSX→ LF改行「¥n」
UNIX → LF改行「¥n」

「str_replace」関数などを使用して、改行コードを変換する際には正しく行いましょう!

改行コードをすべて削除

$str = str_replace(array("\r\n", "\r", "\n"), '', $str);

WindowsのCRLF改行「¥r¥n」とMacintosh OS9までのLF改行を一括でLF改行「¥n」に変更

$str = str_replace(array("\r\n", "\r"), "\n", $str);

改行コードをすべてHTMLのタグに変換

$str = nl2br($str);

nl2br関数は、「New Line To Break」の略となっていて、改行を<br />タグへ変換しますよという意味のようです。
こんな便利な関数があるんですね!

【PHP net】nl2br — 改行文字の前に HTML の改行タグを挿入する
http://php.net/manual/ja/function.nl2br.php

【関連記事】改行コードに関して LFとCRとは
https://thesaibase.com/server/lf-cr

【関連記事】PHP 改行の削除
https://thesaibase.com/php/line-feed

タイトルとURLをコピーしました