[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>';
・実行結果
