In PHP, is there a way to capture the output of a PHP file into a variable without using output buffering?

eval, output-buffering, php

Solution

A little known feature of PHP is being able to treat an included/required file like a function call, with a return value.

For example:

// myinclude.php
$value = 'foo';
$otherValue = 'bar';
return $value . $otherValue;


// index.php
$output = include './myinclude.php';
echo $output;
// Will echo foobar

Problem

In PHP, I want to read a file into a variable and process the PHP in the file at the same time without using output buffering. Is this possible? Essentially I want to be able to accomplish this without using `ob_start()`: ``` <?php ob_start(); include 'myfile.php'; $xhtml = ob_get_clean(); ?> ``` Is this possible in PHP? Update: I want to do some more complex things within an output callback (where output buffering is not allowed).

Original source