Sen output buffering ile yapabilirsiniz:
function include2string($file) {
ob_start();
include($file);
return ob_get_clean();
}
@DaveRandom bir fonksiyon içerisine sarılması ile sorunun komut ($ dosya) erişemez olmasıdır ki (doğru) işaret küresel olarak tanımlanan değişken. Bu, dinamik olarak dahil birçok komut dosyası için bir sorun olmayabilir, ancak sizin için bir sorunsa, o zaman bu teknik (diğerleri tarafından gösterildiği gibi) bir işlev sarıcı dışında kullanılabilir.
** Değişkenleri içe aktarma Yapabileceğiniz bir şey, betiğinize değişken olarak göstermek istediğiniz bir veri kümesi eklemektir. Veriyi bir şablona aktarmak gibi düşünün.
include2string('foo.php', array('key' => 'value', 'varibleName' => $variableName));
ve şimdi $key
ve $variableName
sizin foo.php dosyası içinde görünür olacaktır:
function include2string($file, array $vars = array()) {
extract($vars);
ob_start();
include($file);
return ob_get_clean();
}
Sen bu şekilde çağırır.
Ayrıca, sizin için daha net görünüyorsa, betiğiniz için "içe aktarma" yapmak üzere global değişkenlerin bir listesini de sağlayabilirsiniz.
function include2string($file, array $import = array()) {
extract(array_intersect_key($GLOBALS, array_fill_keys($import, 1)));
ob_start();
include($file);
return ob_get_clean();
}
Ve sen komut maruz edilmesini istediğiniz globaller bir listesini sunan çağırır:
$foo='bar';
$boo='far';
include2string('foo.php', array('foo'));
foo.php
foo
değil boo
görmek mümkün olmalıdır.
benim tahminim olmayacak olmasıdır @safarov ben test.php dosyasında bir $ yerine koymaz düşünüyorum –
onun değişken değerlendirir. kontrol edeyim. – ppp