• 締切済み

htmlの一部を読み込んで表示する。

下の階層に有る自分のページをトップのindex.phpページに表示したいです。 《./abc/123.html》 ▼<div id="news">■~●</div>▲ 現在は123.htmlで指定した範囲を通り過ぎて▲の部分まで表示してしまいます。 ■~●だけを表示するにはどうしたらよいでしょうか? 今は下記のように書いています。 <?php $str = file_get_contents('./abc/123.html'); if (preg_match('!<div id="news">\s*(.*)</div>!s', $str, $res)){ print $res[1]; } ?> ご指導よろしくお願い致します。

みんなの回答

  • duron
  • ベストアンサー率77% (73/94)
回答No.1

多分123.htmlの▼<div id="news">■~●</div>▲以降には 再び<div></div>が使われていると思います。 「.*」は任意の一文字以上で最長の部分がマッチする部分として取得されるので 最短マッチを表す「.*?」を指定すれば希望通り取得できると思います。 if (preg_match('!<div id="news">(.*?)</div>!s', $str, $res)){

mkoiuhbn
質問者

お礼

ありがとうございます。 お陰さまで余計な部分を表示せずにスッキリしました。 未熟者ですが今後とも宜しくお願い致します。