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.12.21
2090
PHP

PHPでクラスを定義・メソッド(関数)を呼び出す方法  

2023.04.01
1898
PHP

【PHP】空もしくは任意の値で埋めた配列を生成する方法

2023.03.12
1190
PHP

【簡単】phpを使って文字列内の全角スペースを半角スペースに変換・置換する方法

更新日:2022.04.04
2438