
よろしくお願いいたします。
色々悩んだのですが…いい方法が見つかりません。
例えば
$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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 【C言語】全角文字の配列を、全角のまま1文字ずつ出力する方法 4 2023/05/09 15:08
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- その他(コンピューター・テクノロジー) googleスプレッドシートでカッコ内の文字数をカウントしたい 1 2023/01/17 15:52
- その他(プログラミング・Web制作) VB.NETの正規表現について 4 2022/04/12 16:54
- その他(プログラミング・Web制作) テキストエディタで複数行にわたる文字列の行頭に番号を振る方法 4 2023/03/11 12:57
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Java Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの 1 2023/06/06 18:55
- オープンソース 【ChatGTPのオープンソースソフトウェアを解析したことがある方、教えてくださ 2 2023/03/08 18:57
- gooブログ Twitterの動画画面をgooブログに埋め込めない 4 2022/06/03 16:40
- Excel(エクセル) エクセルでA列セル内で折り返すことなく、文字列を、B列C列・・・側に一行に 2 2022/07/23 02:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
改行コード再
-
ソースコードの1行が長いとき...
-
文章のはじめに「 > 」を付ける
-
ホームページの転送 (SFTP, SCP...
-
=付きUTF-8コードの表示方法
-
改行のことで
-
HDMLの<CENTER>に...
-
2147483647LのLについて
-
秀丸とノートパッドの互換性 ...
-
LINE INPUT # の動作がExce...
-
変数に改行入りの文字列を格納...
-
ButtonコントロールのText
-
複数行をヒットさせる正規表現
-
テキストファイルの改行の変換
-
EOF、改行の矢印
-
textareaに改行を入れても、CSV...
-
C言語
-
ユーザーフォームにテキストフ...
-
html 簡単作成できるサイト・...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
C++で空Enterの入力を判...
-
VBAでCSVをExcelに取り込む時に...
-
改行について
-
改行を読み飛ばす
-
テキストボックス行の桁数を制...
-
C# DataGridViewのセルを改行禁...
-
LaTeX: captionの中で改行した...
-
JAVA System.out.println の ...
-
エクセルVBA 文字列領域が不足...
-
最終行の改行について
-
グレープシティのSPREAD...
-
【VBA】エクセルで最後の不要な...
-
jsp 改行コードで改行させて表...
-
ラベル(スタティックテキスト)...
-
1行ごとに取得して、その改行...
-
ファイルから読み取った改行文...
-
JavaDoc コメントの改行について
おすすめ情報