Irohabook
0
2475

PHPでテキストエリアの入力を改行で区切って配列にする(改行コードはダブルクォーテーションで囲む)

PHPで改行コードを使うときはシングルクォーテーションでなく、ダブルクォーテーションを使う。文字列を改行コードで分割して配列にするときに、シングルクォーテーションだと予想しないことが起きる。下のコードにあるように改行コードはダブルクォーテーションで囲もう。

$rows = explode( "\n", $input );

テキストエリアの入力を改行で分割して配列にするときは次のようにする。

$input = filter_input( INPUT_POST, 'rows' );
$input = str_replace( array( "\r\n", "\r", "\n" ), "\n", $input );
$rows = explode( "\n", $input );

$rows = array_map( 'trim', $rows );
$rows = array_filter( $rows, 'strlen' );
$rows = array_values( $rows );

下の三行は、配列から文字のない要素を削除したり、その結果生じるキーのズレを修正したりするどうでもいいコード。

ポイントは改行コードを最初に¥nにまとめること。WindowsやMacでは改行コードの扱いに違いがあるので、最初にそれらを一つに統一して、それから¥nで分割する。

次の記事

Tips