![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
よろしくお願いいたします。
色々悩んだのですが…いい方法が見つかりません。
例えば
$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行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
COBOLの改行
-
JavaMail,本文中の改行について
-
秀丸の正規表現で複数行にわた...
-
C言語で改行コードを知る
-
PHPで改行を含んだ文章の切り出し
-
最終行の改行について
-
PHPで出力したHTMLのソースが汚い
-
グレープシティのSPREAD...
-
VBA初心者です。txtファイルの...
-
ExcelVBAでメールを作成してメ...
-
C言語の標準入力で改行しない方法
-
FTP受信する際、改行コードをは...
-
コンボボックスの項目中に改行を
-
改行について
-
文字列型変数に1024を超えた文...
-
C++で空Enterの入力を判...
-
エクセルVBA 文字列領域が不足...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
COBOLの改行
-
C++で空Enterの入力を判...
-
改行について
-
ファイルから読み取った改行文...
-
jsp 改行コードで改行させて表...
-
C++でのCRLFについて
-
エクセルVBA 文字列領域が不足...
-
テキストファイルから改行コー...
-
JavaDoc コメントの改行について
-
最終行の改行について
-
JavaMail,本文中の改行について
-
【VBA】エクセルで最後の不要な...
-
文の改行
-
VBAでCSVをExcelに取り込む時に...
-
ラベル(スタティックテキスト)...
-
改行コード(CR/LF)の設...
-
テキストボックス行の桁数を制...
おすすめ情報