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タグで囲われたソースだけ取り出す記述になってます。

まとめ

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

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

Ads

関連記事

PHP プログラミング

Use of undefined constant campaign – assumed ‘文字列'(this will throw an Error in a future version of PHP) inエラーがでる場合の対処方法

2022.01.29
23
PHP

【PHP】配列をカンマ区切りで出力する方法

2022.05.24
42
PHP

PHPの配列をJavaScriptに受け渡す方法

2022.05.25
242
PHP

【PHP】指定した値で配列を埋める方法【array_padを使おう】

2022.06.12
60