require / include в переменную

Я хочу потребовать / включить файл и загрузить его содержимое в переменную.

test.php

<?php echo "seconds passed since 01-01-1970 00:00 GMT is ".time(); ?> 

index.php

 <?php $test=require("test.php"); echo "the content of test.php is:<hr>".$test; ?> 

Подобно file_get_contents() но он все равно должен выполнять PHP-код. Это возможно?

Solutions Collecting From Web of "require / include в переменную"

У меня также был этот вопрос один раз, попробуйте что-то вроде

 <?php function requireToVar($file){ ob_start(); require($file); return ob_get_clean(); } $test=requireToVar($test); ?> 

Если ваш файл включен, переменная …

include.php

 <?php return 'abc'; 

… тогда вы можете назначить его переменной как таковой …

 $abc = include 'include.php'; 

В противном случае используйте буферизацию вывода.

 ob_start(); include 'include.php'; $buffer = ob_get_clean(); 

Вы можете написать во включенном файле:

 <?php return 'seconds etc.'; 

И в файл, из которого вы включаете:

 <?php $text = include('file.php'); // just assigns value returned in file 

В PHP / 7 вы можете использовать самозапускающуюся анонимную функцию для выполнения простой инкапсуляции и предотвращения глобального заражения от случайных глобальных переменных:

 return (function () { // Local variables (not exported) $current_time = time(); $reference_time = '01-01-1970 00:00'; return "seconds passed since $reference_time GMT is $current_time"; })(); 

Альтернативным синтаксисом для PHP / 5.3 + будет:

 return call_user_func(function(){ // Local variables (not exported) $current_time = time(); $reference_time = '01-01-1970 00:00'; return "seconds passed since $reference_time GMT is $current_time"; }); 

Затем вы можете выбрать имя переменной, как обычно:

 $banner = require 'test.php'; 

Используйте shell_exec("php test.php") . Он возвращает результат выполнения.

Я думаю, что eval(file_get_contents('include.php')) поможет вам. Помните, что на вашем хостинге можно отключить другой способ выполнения, например, shell_exec.

require / include не возвращает содержимое файла. Вам нужно будет сделать отдельные звонки, чтобы достичь того, что вы пытаетесь сделать.

РЕДАКТИРОВАТЬ

Использование echo не позволит вам делать то, что вы хотите. Но возврат содержимого файла будет выполнен, как указано в руководстве – http://www.php.net/manual/en/function.include.php

Это возможно, только если требуемый или включенный файл php возвращает что-то (массив, объект, строка, int, переменная и т. Д.)

 $var = require '/dir/file.php'; 

Но если это не файл php, и вы хотели бы оценить содержимое этого файла, вы можете:

 <?php function get_file($path){ return eval(trim(str_replace(array('<?php', '?>'), '', file_get_contents($path)))); } $var = get_file('/dir/file.php'); 

Или, может быть, что-то вроде этого

в файле include.php:

 <?php //include.php file $return .= "value1 "; $return .= time(); 

в каком-то другом php-файле (не важно, что является содержимым этого файла):

 <?php // other.php file function() { $return = "Values are: "; include "path_to_file/include.php"; return $return; } 

return будет выглядеть следующим образом:

 Values are: value1, 145635165 

Дело в том, что содержимое включенного файла имеет ту же область, что и содержание функции в примере, который я представил.