http://ja.wikipedia.org/wiki/大久保利通
で
1.「編集」と言う文字があったら
2.その前の太字の文字 例:「生い立ち」 を表示
2-1 その前(「生い立ち」の前に)に太字の文字があったら、その太字の文字「生涯」と「節」という文字 を表示
3.次の「編集」という文字の前の太字の文字の前まで
例:文政13年8月 ~ 後に改名する。
まで を 表示。
4.これを、「編集」という文字がなくなるまで繰り返す。
* 「を表示」 は echo コマンドお願いします。
よろしくお願いします。
以下のプログラムをお試しください。
気になったことを列挙します。
<?php $pat1 = "/(.+)<span class=\"editsection\">.+>編集.+(<span class=\"mw-headline\"[^>]+>.+<\/span>)(.+)/iu"; $keyword = '大久保利通'; $url = 'http://ja.wikipedia.org/wiki/' . urlencode($keyword); $res = ''; $flag = FALSE; $fp = fopen($url, 'r'); while (!feof($fp)) { $str = fgets($fp); if (preg_match($pat1, $str, $match)) { $res .= $match[1] . $match[2] . $match[3]; $flag = TRUE; } else if ($flag == TRUE) { $res .= $str; } } fclose($fp); echo $res; ?>
早速お返事いただきありがとうございます。
2013/02/02 19:01:55書いていただいたプログラム確かに動きました。
次にやりたいこともあるのですが、書いていただいたプログラムを
しっかり勉強し直してから、わからない部分なったら質問させていただきます。
時期がきましたので、この質問は締めさせていただきます。
ありがとうございました。
>どこまで表示すればよいか
「案内メニュー」と言う文言の前まで、ということになりますか。
>「節」の表示方法
書いていただいたプログラム通りの表示方法です。