• ベストアンサー

php で特定の文字の行以降のデータを無視したいです。

php で特定の文字の行以降のデータを無視したいです。 $text = ' この文字列はテストといいます。 テストはどうですか? <a href="index.html">豆腐</a> というサイトがあります。 '; という、文字列から、 ”この文字列はテストといいます。 テストはどうですか? ” というデータを取得したいと考えています。 例ですと、「<a href="index.html">豆腐</a>」というデータ以前の データを取得したいと思っています。 恐らく、preg_match あたりで、できる…かもと思っていますが…。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

基本的には#1さんのものでかまわないと思いますが細かいところだと (1)最初に改行が入っているそれもマッチさせた方がいい (2)最短マッチした方がいい 改行マークについては常に意識してやらないとはまりがちです <? $text = ' この文字列はテストといいます。 テストはどうですか? <a href="index.html">豆腐</a> <a href="index.html">豆腐</a> というサイトがあります。 '; $pattern="/(?:\n*)(.*?)\n<a href=\"index.html\">豆腐<\/a>/s"; preg_match($pattern, $text, $m); var_dump($m[1]); ?>

okwave2006
質問者

お礼

ありがとうございます!

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • mokokomi
  • ベストアンサー率71% (5/7)
回答No.1

<code> <?php $text = <<< EOS この文字列はテストといいます。 テストはどうですか? <a href="index.html">豆腐</a> というサイトがあります。 EOS; preg_match("/(.*)\n<a.*?>豆腐<\/a>/s", $text, $m); var_dump($m[1]); /* string(77) "この文字列はテストといいます。 テストはどうですか? " */ </code>

okwave2006
質問者

お礼

ありがとうございます! とても参考になり勉強になりました!

すると、全ての回答が全文表示されます。

関連するQ&A