あなたはoutput bufferingでこれを行うことができます。
function include2string($file) {
ob_start();
include($file);
return ob_get_clean();
}
@DaveRandomは機能でこれを包むの問題は、あなたのスクリプト($ファイル)へのアクセス権を持っていないということであることを(正しく)指摘変数はグローバルに定義されます。これは動的に含まれる多くのスクリプトでは問題にはならないかもしれませんが、それが問題の場合は、この手法を関数ラッパーの外で使用することができます。
**変数のインポート あなたが行うことができることの1つは、スクリプトに公開する一連のデータを変数として追加することです。データをテンプレートに渡すように考えてください。
include2string('foo.php', array('key' => 'value', 'varibleName' => $variableName));
、今$key
と$variableName
があなたのfoo.phpファイル内の目に見えるようになります:
function include2string($file, array $vars = array()) {
extract($vars);
ob_start();
include($file);
return ob_get_clean();
}
あなたはこのようにそれを呼び出します。
スクリプトに「インポート」するグローバル変数のリストを提供することもできます。
function include2string($file, array $import = array()) {
extract(array_intersect_key($GLOBALS, array_fill_keys($import, 1)));
ob_start();
include($file);
return ob_get_clean();
}
そして、あなたは、あなたがスクリプトにさらさたいグローバルのリストを提供し、それを呼び出します。
$foo='bar';
$boo='far';
include2string('foo.php', array('foo'));
foo.php
はfoo
はなく、boo
を見ることができるはずです。
私の推測では、それはつもりはないということです@safarovは、私はそれがtest.phpをファイルに$を代用しないだろうと思い –
彼の変数を評価します。私にチェックさせてください。 – ppp