• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPで改行を含んだ文章の切り出し)

PHPで改行を含んだ文章の切り出し方法

このQ&Aのポイント
  • PHPで改行を含んだ文章の切り出しについて、検索文字列を改行コード で行う方法を紹介します。
  • 普通の文字列であれば、substr関数とstrpos関数を使用して切り出すことができますが、改行を含んだ文章の場合は注意が必要です。
  • 改行を含んだ文章を切り出す方法として、改行コード を使い、substr関数とstrpos関数を組み合わせて利用することができます。

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.2

ちなみに $bar = substr( $foo, 0, str_pos( $foo, "検索文字列", オフセット値 ) ); 普通にここに $bar = substr( $foo, 0, str_pos( $foo, "\n", オフセット値 ) ); と「\n」を入力してあげれば改行コードとして展開されます。 【シングルクオート内】 \\ … 「\」自体 【ダブルクオート内】 \\ … 「\」自体 \s … 半角スペース \r … 改行コード「CR」 \n … 改行コード「LF」 \f … 改ページ \v … 垂直タブ \x○○ … バイト表現(○○には16進値が入る) ちなみに改行を表す定数として PHP_EOL も用意されています。これが「LF」になるか「CRLF」になるかは環境に依存します。

koyuki_0808
質問者

お礼

補足がお礼になってしまいました…。 迅速なご回答本当にありがとうございました !! 大変助かりました !!

koyuki_0808
質問者

補足

おぉぉぉっ !! なんとなくわかった気がします。 実は $bar = substr( $foo, 0, str_pos( $foo, "\n", オフセット値 ) ); の部分。 実際のコードでは $bar = mb_substr( $foo, 0, mb_str_pos( $foo, "\n", オフセット値 ) ); とマルチバイト関数を使用していたのでできていなかったようです。 これを最終的に $bar = substr( $foo, 0, str_pos( $foo, PHP_EOL, オフセット値 ) ); とすることで解決できました。 まさにドンピシャでした !! ありがとうございます !!

その他の回答 (1)

noname#244856
noname#244856
回答No.1

改行で分割して配列化したいなら $arr = explode("\n", $foo); PHPの配列関数はすごく充実してるのでマニュアルに一度は目を通してください。 http://php.net/manual/ja/ref.array.php よりよいコーディングのために http://note.chiebukuro.yahoo.co.jp/detail/n149597

koyuki_0808
質問者

補足

ご回答ありがとうございます。 もちろん explode は知っています。 今回は配列として取り出したいのではなく文字列として取り出したいのです。 一度配列として取り出した上で任意の不可視の文字列で結合し、 カウントして切り出してもよかったのですが もう少しすっきりやる方法はないかと思い質問しました。