人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

以下の内容をPHP5で書いてください。
http://ja.wikipedia.org/wiki/大久保利通

1.「編集」と言う文字があったら

2.その前の太字の文字 例:「生い立ち」 を表示

2?1 その前(「生い立ち」の前に)に太字の文字があったら、その太字の文字「生涯」と「節」という文字 を表示

3.次の「編集」という文字の前の太字の文字の前まで
例:文政13年8月 ? 後に改名する。
まで を 表示。

4.これを、「編集」という文字がなくなるまで繰り返す。

* 「を表示」 は echo コマンドお願いします。

よろしくお願いします。

●質問者: kohhi
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● oil999
●200ポイント ベストアンサー

以下のプログラムをお試しください。

気になったことを列挙します。

  1. 与えられた条件だと、どこまで表示すればよいか(表示の終了条件)が分かりません。
  2. 「節」の表示方法が分かりません。"節"という文字列は表示されず、title属性に含まれています。これをどう表示させるかが分かりません。

<?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;
?>

kohhiさんのコメント
早速お返事いただきありがとうございます。 書いていただいたプログラム確かに動きました。 次にやりたいこともあるのですが、書いていただいたプログラムを しっかり勉強し直してから、わからない部分なったら質問させていただきます。 時期がきましたので、この質問は締めさせていただきます。 ありがとうございました。 >どこまで表示すればよいか 「案内メニュー」と言う文言の前まで、ということになりますか。 >「節」の表示方法 書いていただいたプログラム通りの表示方法です。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ