※ ChatGPTを利用し、要約された質問です(原文:file_get_contentsで抽出後の処理)
file_get_contentsで抽出後の処理について
このQ&Aのポイント
file_get_contents関数を使用してウェブ上のHTMLを抽出し、必要なテーブル部分を取得した後、正規表現を使用してテーブル部分のみを抽出する方法について困っています。
取り出したテキストをsubstr関数を使用して編集しようとしたがうまくいかなかった。
タグと文字列を同時に消す方法がわからない。preg_replaceを使用して正規表現で処理しようとしたが、うまくいかなかった。
ウェブ上のhtmlをPHPのfile_get_contents関数で抽出し、mb_convert_encodingをした後、必要なテーブル部分を抽出したのですが、その後の処理に困っています。
header("Content-Type: text/html; charset=UTF-8");
$page = file_get_contents ('http://xxxxxxxxxxxx.php');
$fp = mb_convert_encoding($page, "UTF-8", "ASCII,JIS,UTF-8,CP51932,SJIS-win");
$text = substr($fp, $letter, $num);
substrで取り出した文字列を編集しているのですがうまくいきません。
取り出した内容は下記の内容で、これをテーブルの部分だけにしたいです。
preg_replaceを使って正規表現で処理するような気がしたので、色々と試しては見たのですが、タグと文字列を同時に消すことが出来ません。(タグだけを消すことは出来ます)
-----------------------------------------------------------
<div id="momiji_box">
<p class="p_menu"><a name=menu_1 id=menu_1> <p>
<table class="no_border">
<tr><td class="no_border_td"><h3 id="this_week_flower">洛北</h3></td></tr>
</table>
<div class="flower_photo">
<br />延暦寺の紅葉</div>
<div class="flower_photo">
<br />曼殊院の紅葉</div>
<div class="flower_photo">
<br />赤山禅院の紅葉</div>
<p style="margin:0 0 10px;" class="c-fix"> </p>
<div class="clear_l"></div>
<table class="border">
<thead>
<tr>
<th colspan=2>紅葉の名所</th>
<th>電話番号(075)</th>
<th>例年の見頃</th>
<th>10月30日現在</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan=2>常照皇寺
</td>
<td>853-0003</td>
<td>11/上</td>
<td>色付き始め</td>
</tr>
<tr>
<td colspan=2>峰定寺
</td>
・・・・・・
/tbody>
</table>
</div>
-----------------------------------------------------------
どうすれば、テーブル部分のみ抽出することができるでしょうか、ご教授宜しくお願いします。
【環境】
Windows7
PHP5.3
共用Xserver
お礼
ありがとうございます。 望んでいた抽出が出来ました。