21

I want 1 PHP file to "run" (include?) another PHP file on the same server, and access its echo'ed output as a string.

How do i do this in PHP? Any inbuilt functions to do this?

Or any better way of executing another PHP file and getting its output?

rzlines
  • 1,417
  • 3
  • 14
  • 21

2 Answers2

51

You can use PHP's output buffering to accomplish this:

ob_start(); // begin collecting output

include 'myfile.php';

$result = ob_get_clean(); // retrieve output from myfile.php, stop buffering

$result will then contain the text.

Jesse Rusak
  • 56,530
  • 12
  • 101
  • 102
7

You can't include a PHP script that is on an external website/server into your local script - unless you enable allow_url_include on your php.ini (if you have access to it)

Instead, you can let that website/server render the page and get the resulting HTML output on your local script by doing this:

$result = file_get_contents('http://127.0.0.1/myfile.php');
Typewar
  • 825
  • 1
  • 13
  • 28
  • 1
    it can be a good answer when we have two environments and in some how we need one of them provide information/service for the other. the url may be better to be configurable :) Thanks Typewar – Dina Oct 23 '17 at 22:37