ダリの雑記:WEBプログラム版

includeしたものを変数に入れる【PHP】

例えば

[php]
<?php
echo "Hello world";
?>
[/php]

という内容が書かれた、「include_hoge.php」というファイルがあるとします。

そして、これを別のファイル(hoge.php)で読み込み、include_hoge.phpの出力内容を変数に入れたいと思うことがあります。(実際はこんな単純な出力内容ではありませんが)

単純に考えると

[php]
$hensu = include(include_hoge.php);
[/php]

となりますが、当然ながらこれではうまく行きません。

変数に放り込まれないどころか、ただ単にechoされた内容が表示されてしまいます。

 

次に考えられる方法は「file_get_contents」を使うことかと思います。

[php]
$hensu = file_get_contents("http://xxxxxx.net/include_hoge.php");
[/php]

とすることにより、include_hoge.phpの出力内容を変数に入れることが出来ます。

しかし、そもそも「file_get_contents」が使用できないように制限されているサーバーや、include_hoge.phpにベーシック認証をかけている場合は取得ができません。(問題がなければこの方法でも良いかと思います)

 

最終的な方法としては下記となります。

[php]
ob_start();
include(include_hoge.php);
$hensu = ob_get_contents();
ob_end_clean();
[/php]

これで、「file_get_contents」同様、「include」でも出力内容を変数に入れることが可能となります。

モバイルバージョンを終了