Written by Kasumi

PHPで外部ファイルを読み込み、bodyタグ内のhtmlソースだけ取得する方法

PHPで同一サーバー内にある外部ファイルを読み込み、任意のページに埋め込みたい。

その際、外部ファイルのbodyタグ内にあるhtmlソースのみ取得したい。

本記事ではこのような悩みを解決。

実装方法について解説します。

実装コード

<?php $file = file_get_contents('外部ファイルのURL');
// body内だけ取り出す
  if (preg_match('!<body>\s*(.*)</body>!s', $file, $output)) {
    echo $output[1];
  }
?>

外部ファイルのbodyタグ内htmlソースを読み込むPHPコードです。

file_get_contents()で外部ファイルの絶対パスを取得。

preg_matchを使い、bodyタグ内を指定。

if文で上記指定にマッチした部分のhtmlソースを取得するという条件式を記述すればOKです。

以上で実装完了です。

任意のタグ・クラス・IDで囲われたソースだけ取得

<?php $file = file_get_contents('外部ファイルのURL');
// fileクラスのdivタグで囲われたソースだけ取り出す
  if (preg_match('!<div class="file">\s*(.*)</div>!s', $file, $output)) {
    echo $output[1];
  }
?>

bodyタグではなく、任意のタグ・クラス・IDで囲われたソースだけ取得したい場合、前章で紹介したコード例を修正。

preg_matchのbodyタグを任意のタグ・クラス・IDに変更してあげればOK。

上記ソース例だどfileクラスのdivタグで囲われたソースだけ取り出す記述になってます。

まとめ

本記事で紹介した方法は同一サーバー内の外部ファイルを取得するに限ります。

以上で解説を終わります。

目次

関連記事

PHP

配列を逆順にする方法【PHP】

2022.05.08
794
PHP

【PHP】例外が発生した場合の処理を実行する方法

2023.04.14
768
PHP

【PHP】動的にテキストファイルを生成。文字列を書き込む方法

2023.03.23
1370
PHP

PHPで現在日時を取得する方法

2023.04.05
628