PHPで改行・空白行の削除を行う処理
よく忘れがちな、PHPによる改行の削除や、空白行の削除の方法についてまとめました。
PHPで改行を削除する
改行の削除は、str_replace関数で行えます。
str_replaceは、('検索対象の文字’, '変換内容’, '元のテキスト’)この3つの引数を当てはめることで、改行コードの部分を空白にすることで、実質的な削除となります。
サンプルコード
$text = 'あ い う え お'; echo str_replace("\r\n", '', $text);
あいうえお
すべての改行(CR・LF・CRLF)を対応したい場合は、第一引数を配列にして設定してください。
配列にすることで、複数の検索対象を設定できます。
サンプルコード
$text = 'あ い う え お'; echo str_replace(["\r\n", "\r", "\n"], '', $text);
あいうえお
ただし、PHPのバージョンが5.4未満の場合は、配列を[]で省略する記法がまだ使えないので、array()に置き換えてください。
array()は5.4未満でも、5.4以降でも使用できます。
サンプルコード
$text = 'あ い う え お'; echo str_replace(array("\r\n", "\r", "\n"), '', $text);
あいうえお
改行が削除できない場合は、シングルクオートで囲っていないか確認
シングルクオート("←これ)で設定してしまうと、「\r\n」はただの文字列として見られてしまいます。
変換対象を改行コードであることを明示するためには、str_replaceで指定する第一引数はダブルクオート(“"←これ)でなければいけません。
でないと、下記のように失敗してしまうので注意です。
サンプルコード
$text = 'あ い う え お'; echo str_replace(['\r\n', '\r', '\n'], '', $text);
あ
い
う
え
お
い
う
え
お
PHPで空白行を削除する
改行ではなく、空白の行のみを対象に削除したい場合は、preg_replaceによる正規表現置き換えで再現できます。
サンプルコード
$text = 'あ い う え お'; echo preg_replace('/^\r\n/m', '', $text);
あ
い
う
え
お
い
う
え
お
こちらは冒頭文字が改行コード、すなわち空白行だった場合は削除する、といった処理を行っています。
複数行として扱うパターン修飾子「m」を入れて、各行に置き換え処理が走ります。
ディスカッション
コメント一覧
まだ、コメントがありません