都道府県穴埋めゲーム

下の階層に有る自分のページをトップの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];
}
?>

ご指導よろしくお願い致します。

A 回答 (1件)

多分123.htmlの▼<div id="news">■~●</div>▲以降には


再び<div></div>が使われていると思います。
「.*」は任意の一文字以上で最長の部分がマッチする部分として取得されるので
最短マッチを表す「.*?」を指定すれば希望通り取得できると思います。

if (preg_match('!<div id="news">(.*?)</div>!s', $str, $res)){
    • good
    • 2
この回答へのお礼

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

お礼日時:2011/01/18 18:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報