とある変数に下のような文字列がはいっています。
$moji = "hogehoge\nfoofoo\ntest";
改行が入っているのですが、
1行目を削除するためにはどうすればよいでしょうか?
こんな感じで良いんでしょうか。
<?php $moji = "hogehoge\nfoofoo\ntest"; $pat = '/^.*?\n/'; $result = preg_replace($pat, '', $moji); echo $result;
ideone.com で試したのがこちら。
http://ideone.com/I91OT4
こんな感じで良いんでしょうか。
<?php $moji = "hogehoge\nfoofoo\ntest"; $pat = '/^.*?\n/'; $result = preg_replace($pat, '', $moji); echo $result;
ideone.com で試したのがこちら。
http://ideone.com/I91OT4
元の文字列に改行文字がある事が前提なら
<?php $moji = "hogehoge\nfoofoo\ntest"; list(,$result) = explode("\n", $moji, 2); var_dump($result); ?>
程度でもよいかと。
前提を満たさない場合があるなら、2行以上あるかのチェックを入れて、無ければ NULL または空を返すような処理が必要ですね。
反射的に1行目に注目して...と思って回答しましたが、よくよく考えれば「2行目以降が欲しい」という事ですよね。
2015/08/22 11:42:47それなら、最初の改行文字以降を取り出せば良いのだから
$pos = strpos($moji, "\n");
$result = substr($moji, $pos+1);
ですね。
改行文字が無い場合もあるなら
$result = ltrim(substr($moji, strpos($moji, "\n")));
とすれば、元々の文字列と同じものが得られます。
改行文字が無い場合の応答として上記が適切であれば良いですが、
「1行目を削除」を忠実に守るなら、得られる値は空か NULL が適当でしょう。
__全てが1行目ですから
その場合は $pos を調べて望ましい値を $result にセットすれば良いと思います。