PHP


とある変数に下のような文字列がはいっています。

$moji = "hogehoge\nfoofoo\ntest";

改行が入っているのですが、
1行目を削除するためにはどうすればよいでしょうか?

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2015/08/22 18:20:05
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.1

回答回数4974ベストアンサー獲得回数2154

ポイント50pt

こんな感じで良いんでしょうか。

<?php
    $moji = "hogehoge\nfoofoo\ntest";

    $pat = '/^.*?\n/';
    $result = preg_replace($pat, '', $moji);

    echo $result;


ideone.com で試したのがこちら。
http://ideone.com/I91OT4

その他の回答1件)

id:a-kuma3 No.1

回答回数4974ベストアンサー獲得回数2154ここでベストアンサー

ポイント50pt

こんな感じで良いんでしょうか。

<?php
    $moji = "hogehoge\nfoofoo\ntest";

    $pat = '/^.*?\n/';
    $result = preg_replace($pat, '', $moji);

    echo $result;


ideone.com で試したのがこちら。
http://ideone.com/I91OT4

id:tezcello No.2

回答回数460ベストアンサー獲得回数69

ポイント50pt

元の文字列に改行文字がある事が前提なら

<?php
$moji = "hogehoge\nfoofoo\ntest";
list(,$result) = explode("\n", $moji, 2);

var_dump($result);
?>

程度でもよいかと。

前提を満たさない場合があるなら、2行以上あるかのチェックを入れて、無ければ NULL または空を返すような処理が必要ですね。

id:tezcello

反射的に1行目に注目して...と思って回答しましたが、よくよく考えれば「2行目以降が欲しい」という事ですよね。
それなら、最初の改行文字以降を取り出せば良いのだから
$pos = strpos($moji, "\n");
$result = substr($moji, $pos+1);
ですね。

改行文字が無い場合もあるなら
$result = ltrim(substr($moji, strpos($moji, "\n")));
とすれば、元々の文字列と同じものが得られます。

改行文字が無い場合の応答として上記が適切であれば良いですが、
「1行目を削除」を忠実に守るなら、得られる値は空か NULL が適当でしょう。
__全てが1行目ですから
その場合は $pos を調べて望ましい値を $result にセットすれば良いと思います。

2015/08/22 11:42:47

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません