[PHP]改行を含むテキストを改行毎に分割して配列に格納する

行毎に文字列を投げる必要がある場合に使用する。
スペースを削除したり、改行のみの文字列を採用するか、キーは採番するかなどを引数で指定。

・サンプルコード

/**
 * 改行を含むテキストを改行毎に分割する関数
 * $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>';

・実行結果

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です