システム開発ブログ

【PHP】 PHPから外部PHPファイルを取込み出力する

赤羽

赤羽 (2010年10月12日 17:02)
流通システム部 / PHP

みなさん、こんにちは。
流通システム部の赤羽です。

今回はPHPのお話をさせていただきます。

PHPでは外部ファイルを読み込み、
内容を出力させることが出来ます。
例えばHTMLのテンプレートファイルを読み込み、
テンプレートの中身を一部PHPの処理で置き換え、
結果をブラウザに表示させる、といった利用法があります。

ここで注意して頂きたいこととして、 PHPで外部ファイルを取込む方法は色々あるのですが、
取込方法によって出力が変わる場合もあります。

私が実際に経験したことを例として挙げます。

取込みを行ったファイルはHTMLファイルだったのですが、
中にPHPのコードが一部分記述されていました。

例:sample.html
<html>
	<head>
	<title>PHPコードを含む外部HTML</title>
	</head>
	<body>
		以下に外部HTMLからPHPの実行結果を出力します。<br />
		<br />
		<?php
			echo 'ここはPHPからの出力です。<br />';
		?>
		<br />
		PHPから出力されていますか?<br />
	</body>
</html>
最初はこのHTMLファイルを以下のように取込んでみました。

例:file_get.php

file_get_contents を使って、同じディレクトリのsample.htmlを取込んでいます。
このfile_get.php の実行結果は以下の通りです。
以下に外部HTMLからPHPの実行結果を出力します。


PHPから出力されていますか?
私の思いとしては、「ここはPHPからの出力です。」の部分が
出力されて欲しかったのですが、
結果を見てみると何も表示されていないです。
ソースを見てみたところ、
どうやらsample.htmlの中身がそのまま出力されており、
PHPコードが実行されていないようでした。

外部ファイル内のPHPコードを実行したい場合、次のような解決方法があります。

例:include.php

出力結果
以下に外部HTMLからPHPの実行結果を出力します。

ここはPHPからの出力です。

PHPから出力されていますか?
「ここはPHPからの出力です。」が表示されているため、
取込んだファイル内のPHPコードが実行され、
思っていた通りの結果が得られていることが確認できます。

この方法のポイントとしては、
外部ファイルの実行結果をバッファに溜め、
内容を変数に入れるところです。
このようにすることで、
例えば、外部ファイル内のPHPコードが実行されたHTML中の
文字列を操作することが可能となります。

上記の例では、file_get_contents では、
外部ファイル内のPHPコードが実行されず、
ob_start した後、include でファイルを取込み、
ob_get_contents で変数にバッファの内容を入れた場合は、
外部ファイル内のPHPのコードが実行されていることが確認出来ます。
このような例はあまりないかもしれませんが、
これらの取込方法の違いを覚えておくと良いでしょう。
システムのトラブル解決を承ります。すぐにシステムリフォームを体験できますシステム診断・システムリフォームのお申し込みはこちらから。

システム開発ブログ

Twitterでilovex_officialをフォローしてください

最近の記事

カテゴリー

部署

月別アーカイブ

以前の部署別ブログ

ページのトップ