【PHP】指定したページの特定の要素のHTMLコードを取得する

電脳備忘録

指定したページの特定の要素のHTMLコードを取得したときのメモ。この方法は同一ドメインでしか使えない。別ドメインだと必ずクロスオリジンで阻止される。

例えば、https://example.com/target.htmlのentry-list-wrapper内のHTMLコードを取得したときはこんな感じ。

<?php
// ターゲットのURL
$targetUrl = 'https://example.com/target.html';
// 対象のページのHTMLを取得
$htmlContent = file_get_contents($targetUrl);
// ターゲットとなる要素のID
$targetElementId = 'entry-list-wrapper';
// HTMLをDOMに変換
$dom = new DOMDocument;
@$dom->loadHTML($htmlContent); // @ を使って警告を抑制
// 対象の要素を取得
$targetElement = $dom->getElementById($targetElementId);
// 対象の要素が存在するか確認して表示
if ($targetElement) {
// 対象の要素のHTMLを表示
echo $dom->saveHTML($targetElement);
} else {
echo 'Target element not found.';
}
?>

広告

ブログの維持費に充てるでございます・・・。