• ベストアンサー

PHPの変数で最初から2行分の文字列を取得したい

phpで変数に格納されたデータの最初の2行分の文字列だけを取り出す方法を教えてください。 例)複数行のデータ(\n区切り) aaaa bbbb cccc dddd 上記のデータが変数$valueに格納されています。 $valueに格納されたaaaa~bbbbまでを取得するにはどうしたらいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.3

preg_match("/^(?:.*+\n?){0,2}+/", $value, $matches); これで $matches[0] に最初の2行分が入ります。 これが一番高速且つシンプルでしょう。

prim0807
質問者

お礼

ありがとうございます、無事取得できました!

その他の回答 (3)

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.4

<?php $str = "aaaa\nbbbb\ncccc\ndddd"; $arr = explode("\n", $str, 3); array_pop($arr); $result = implode("\n", $arr); うーん・・。ちょっと冗長か(汗

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.2

<?php $str = "aaaa\nbbbb\ncccc\ndddd"; echo $rs3 = preg_replace('/^((.*?(?:\r\n|\n|\r)){2}).*/s', '$1', $str);

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.1

<?php $str = "aaaa\nbbbb\ncccc\ndddd"; echo $rs1 = preg_replace('/^(.*?\n.*?\n).*/s', '$1', $str); echo $rs2 = join("\n", array_slice(preg_split('/\n/', $str), 0, 2));