Включить PHP-файл как строку

можно ли сделать что-то подобное?

// file.php $string = require('otherfile.php'); echo $string; // otherfile.php <!DOCTYPE html> <html> <head><title>Test</title></head> <body> <?php require 'body.php';?> </body> </html> // body.php <p>Lorem ipsum something</p> 

И получить этот выход?

 <!DOCTYPE html> <html> <head><title>Test</title></head> <body> <p>Lorem ipsum something</p> </body> </html> 

Я знаю, что код не сработает, но я надеюсь, вы понимаете, что я имею в виду.

file.php

 ob_start(); include 'otherfile.php'; $string = ob_get_clean(); 
 $string = file_get_contents('otherfile.php',TRUE); echo $string 

Использование аргумента TRUE для file_get_contents () означает, что он будет искать с использованием пути включения, например, нормальный include или require

Еще одна интересная вещь, которую нужно знать, но ответ SmokeyPHP может быть лучше:

 <?php $var = require 'myfile.php'; 

myfile.php:

 <?php return 'mystring'; 

Думаю, вы уже решили проблему. В эти дни я столкнулся с той же проблемой, и я нашел довольно эффективное решение с использованием функций eval, file_get_contents и вывода буферизации:

 ob_start(); eval('?>' . file_get_contents( $fileToRequire, TRUE ) . '<?php '); $this->output = ob_get_contents(); ob_end_clean(); 

Единственное, что вам нужно, это поставить php-код между тегами <?php ?> И не оставлять открытый php-тег открытым.

'?>' является обязательным, иначе вы получите ошибку от функции eval

Надеюсь, поможет!

Ура!

Да, вы можете использовать оператор return в файле, а require и includes возвратит возвращаемое значение, но вам придется изменить файл, чтобы сказать что-то более похожее

 <?php return '<p>Lorem ipsum something</p>'; ?> 

проверьте пример № 5 по включению документации http://www.php.net/manual/en/function.include.php

Используйте движок шаблонов, например Jinja http://jinja.pocoo.org/docs/

 <?php require "otherfile.php";