
よろしくお願いいたします。
色々悩んだのですが…いい方法が見つかりません。
例えば
$foo = "テストの文字列テストの文字列テストの文字列テストの文字列テストの文字列(改行)テストの文字列テストの文字列テストの文字列テストの文字列テストの文字列(改行)テストの文字列テストの文字列テストの文字列テストの文字列テストの文字列(改行)テストの文字列テストの文字列テストの文字列テストの文字列テストの文字列(改行)";
という文字列 $foo があるとします。
(改行)の部分は改行コード \n が入っているとします。
この時、文字列を(例えば)文意の切れる改行で区切って切り出そうとするとどんな方法があるのでしょうか?
普通の文字列であれば
$bar = substr( $foo, 0, str_pos( $foo, "検索文字列", オフセット値 ) );
のような形で切り出せると思うのですが、
この検索文字列を改行コード \n で行いたいのですが…。
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」になるかは環境に依存します。
この回答への補足
おぉぉぉっ !!
なんとなくわかった気がします。
実は
$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, オフセット値 ) );
とすることで解決できました。
まさにドンピシャでした !!
ありがとうございます !!
No.1
- 回答日時:
改行で分割して配列化したいなら
$arr = explode("\n", $foo);
PHPの配列関数はすごく充実してるのでマニュアルに一度は目を通してください。
http://php.net/manual/ja/ref.array.php
よりよいコーディングのために
http://note.chiebukuro.yahoo.co.jp/detail/n149597
この回答への補足
ご回答ありがとうございます。
もちろん explode は知っています。
今回は配列として取り出したいのではなく文字列として取り出したいのです。
一度配列として取り出した上で任意の不可視の文字列で結合し、
カウントして切り出してもよかったのですが
もう少しすっきりやる方法はないかと思い質問しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C++で空Enterの入力を判...
-
VBAのコマンドボタンの文字列の...
-
VBAでCSVをExcelに取り込む時に...
-
vbsで2文字以上の空白を改行に...
-
jsp 改行コードで改行させて表...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
JavaDoc コメントの改行について
-
C言語の標準入力で改行しない方法
-
\\nと\\rの違い
-
vb.netでのリッチテキストボッ...
-
Excel VBAからBeckyを起動して...
-
改行について
-
【VBA】エクセルで最後の不要な...
-
POSTで改行コードを受け渡すには
-
FORTRANで作成したテキストファ...
-
バーコード入力と手入力の判断...
-
COBOLの改行
-
awkで改行を除いて文字列を抜き...
-
C++でのCRLFについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
jsp 改行コードで改行させて表...
-
改行について
-
VBAでCSVをExcelに取り込む時に...
-
【VBA】エクセルで最後の不要な...
-
ラベル(スタティックテキスト)...
-
ファイルから読み取った改行文...
-
Excel VBAからBeckyを起動して...
-
C++で空Enterの入力を判...
-
JAVA Spring 改行コードを含む...
-
変数の中の改行コードをBRタグ...
-
秀丸の正規表現で複数行にわた...
-
awkで改行を除いて文字列を抜き...
-
エクセルVBA 文字列領域が不足...
-
vb.netでのリッチテキストボッ...
-
グレープシティのSPREAD...
-
COBOLの改行
-
最終行の改行について
おすすめ情報