[PHP]改行を含むテキストを改行毎に分割して配列に格納する
2019年7月10日
行毎に文字列を投げる必要がある場合に使用する。 スペースを削除したり、改行のみの文字列を採用するか、キーは採番するかなどを引数で指定。
・サンプルコード
/** * 改行を含むテキストを改行毎に分割する関数 * $text : 対象文字列 * $trim : 空白を削除するか * $zero : 改行のみの文字を含むか * $remake : キーを採番し直すか **/ function split_line_text($text, $trim = true, $zero = true, $remake = true) { $strLines = array(); // 改行毎に配列に格納 $strLines = explode("\n", $text); if($trim == true) { // 空白(スペース)を削除する $strLines = array_map('trim', $strLines); } if($zero == true) { // 文字を含まない改行のみを削除する $strLines = array_filter($strLines, 'strlen'); } if($remake == true) { // キーを採番し直す $strLines = array_values($strLines); } return $strLines; } $text = '1行目のテキスト 2行目のmessage 3行目 5行目先頭は半角スペース 改行のみ含んだ場合は8行目 '; echo '<pre>■空白除去・改行のみ削除・キー採番し直し'; print_r(split_line_text($text)); echo '</pre>'; echo '<pre>■空白除去しない・改行のみ削除しない・キー採番しない'; print_r(split_line_text($text, false, false, false)); echo '</pre>'; echo '<pre>■空白除去・改行のみ削除しない・キー採番しない'; print_r(split_line_text($text, true, false, false)); echo '</pre>'; echo '<pre>■空白除去・改行のみ削除・キー採番しない'; print_r(split_line_text($text, true, true, false)); echo '</pre>';