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】文字列を比較し、部分一致で条件分岐する方法

2021.12.24
1604
PHP

【PHP】多次元配列で同じ列の合計を求める方法

2022.06.20
472
PHP プログラミング

【php】現在のディレクトリURLを取得し、条件分岐する方法

2021.10.28
1516
PHP プログラミング

【簡単PHP】連想配列からkey(キー)のみ取得、もしくは値のみ配列で再取得する方法

2022.03.22
1087