PHPでrequireした結果を変数に格納する方法とちょっとした小技

2013/07/20 | プログラミング

  • Pocket
  • このエントリーをはてなブックマークに追加
  • 169 follow us in feedly

まえがき

PHPでrequireやincludeをそのまま単純に読み込むのではなく、

変数に格納したい時っていままで何度かありました。

また、読み込むファイルのPHPの実行や、変数の展開なども今回紹介するやりかたで簡単に出来ます。

今回調べてみてちょっと便利な使い方を考えたのでメモしておきます。

 

ソースコード

・index.php

<?php

$html = "";

$name = "yamada taro";
$age  = "20";
$job  = "NEET";
$data = array(
			"name" => $name,
			"age"  => $age,
			"job"  => $job
		);
$html .= get_contents("template.html", $data);


$name = "tanaka jiro";
$age  = "24";
$job  = "医者";
$data = array(
			"name" => $name,
			"age"  => $age,
			"job"  => $job
		);
$html .= get_contents("template.html", $data);

echo $html;


/**
	ファイルを取得して文字列として返す関数
*/
function get_contents($file, $data){

	// 連想配列から変数を作成
	extract($data);

	// requireした結果を変数に格納
	ob_start();
	require($file);
	$html = ob_get_contents();
	ob_end_clean();

	return $html;
}
?>

 

・template.html

はじめまして。
<?php echo $name; ?>です。
<?php echo $age; ?>歳になりました。
職業は<?php echo $job; ?>です。

 

ポイント

・requireの処理を関数化してコードをコンパクトに。

・関数化によって変数のスコープの問題があるのでarrayでまとめて送ってextract()で連想配列から変数を作成。

 

あとがき

今回のこのTipsですが

自分はWordpressのプラグインなどで使っています。

2013/07/20 | プログラミング

関連記事

rakuten-api-1rakuten-api-1.png

楽天APIでISBNコードを使って書籍検索してみる。『PHP&Ruby』

まえがき ちょっとした書籍検索サンプルのコードのメモ。 今回何がや...

記事を読む

20130712024231.png20130712024110

初めての自作WordPressプラグイン。Twitterフォローボタンを作ろう。

まえがき Wordpressのプラグインを作ってみよう! とゆう今...

記事を読む

images-1

PEARライブラリphpDocumentor2を使って楽々ドキュメント作成

まえがき GWも終わって普段の生活に戻り5月病にかかった私ですが、 ...

記事を読む

converted.png

cakephpでコントローラー毎にBASIC認証をかけるの巻

まえかき まえがきとしてはタイトルどおりなのですが、 先日cakeph...

記事を読む

no image

Cakephpでよく忘れるコントローラーの設定

まえがき 最近久しぶりにCakephpを触りました、新しいプロジェクト...

記事を読む

新着記事

no image

PHPでRubyのirbっぽいインタラクティブなスクリプトが実行できる「boris」

まえがき PHPでもRubyのirbみたいなことがしたくて探してみたと...

記事を読む

2015年の抱負と去年の振り返り〜よちよちWEB業界1年経験して〜

まえがき あけましておめでとうございます。今年もどうぞよろしくお願いし...

記事を読む

Java SE 7 Bronze試験(1Z0-802)を受けてきました

まえがき 以前から少し受けてみたかった試験『Java SE 7 Bro...

記事を読む

HubotでJenkinsのジョブを実行する

まえがき HubotをつかってJenkinsのジョブをじっこうしてみた...

記事を読む

no image

Hubotをforeverでデーモン化する

まえがき 今回はHubotをforeverを使ってデーモン化してみた時...

記事を読む

スポンサーリンク

PAGE TOP ↑