他のWebサイトからテーブルを取得したい(テーブルは毎日更新されています)。元のWebサイトと同じ配置ではなく、自分のWebサイトに表示したいです。
したがって、curlとstrstr()を使用してテーブルを取得しましたが、文字列関数を使用してテーブル全体を編集するのは無意味に思えます。これを行うにはもっと簡単な方法があると確信しています。
たぶん、元のテーブルをxml形式で作成して、構造をより簡単に操作できるようにする方法はありますか?
どうもありがとうございます!
他のWebサイトからテーブルを取得したい(テーブルは毎日更新されています)。元のWebサイトと同じ配置ではなく、自分のWebサイトに表示したいです。
したがって、curlとstrstr()を使用してテーブルを取得しましたが、文字列関数を使用してテーブル全体を編集するのは無意味に思えます。これを行うにはもっと簡単な方法があると確信しています。
たぶん、元のテーブルをxml形式で作成して、構造をより簡単に操作できるようにする方法はありますか?
どうもありがとうございます!
これは、テーブルを消費する方法の大まかな例です(別のテーブルをエコーアウトするためだけに)。以下では、SimpleXMLとxpathを使用して、テーブルデータのクラスを持つ要素をドキュメントで検索し、すべてのTRをループしてパッティングします。と存在するブロックを処理するためのいくつかの特別な条件
明らかな欠点は、サードパーティのWebサイトのレイアウトが変更されると、コードが機能しなくなることです。
header('Content-Type: text/html; charset=UTF-8');
$html = file_get_contents('http://www.votes-19.gov.il/nationalresults'); // or use curl
$html = mb_convert_encoding($html, 'HTML-ENTITIES', "UTF-8");
$doc = new DOMDocument();
$doc->strictErrorChecking = FALSE;
$doc->loadHTML($html);
$xml = simplexml_import_dom($doc);
echo '<!doctype html><html><head><style type="text/css">body{direction: rtl;}</style></head><body><table>';
if($trxpath = $xml->xpath('//table[@class="TableData"]/tr'))
{
foreach($trxpath as $tr)
{
echo '<tr>';
echo '<th>' . $tr->th . '</th>';
foreach($tr->td as $td)
{
if($td->div)
echo '<td>' . $td->div . '</td>';
else
echo '<td>' . $td . '</td>';
}
echo '</tr>';
}
}
echo '</table></body></html>';