tags:

views:

133

answers:

5

Hi!

I'm coding a web site and I have a php fonction called site_nav.php which first define a $list array and than echos it in a json form.

This way, I can get my web site map with ajax.

My problem is that now, I would like to get the $list object in php, without echoing the json object.

My question: Is there a way to include my php file without activation of the echo call which is in it?

Thanks a lot!

+9  A: 

Yes, just use output buffering. See the documentation on ob_start and ob_end_clean.

ob_start();
include("file.php");
ob_end_clean();
tj111
doh beat my by 20 seconds ;)
Byron Whitlock
+2  A: 

You can use output buffering to achieve this.

ob_start();
include("myfile.php");
ob_end_clean();
Byron Whitlock
Thanks! a lot!
Balls-of-steel
A: 

You may want to look into output buffering:

http://us3.php.net/manual/en/book.outcontrol.php

Though I suspect the design of your application can be improved so you don't need this.

koen
+2  A: 

You could use an output buffer to catch the output in a string.

ob_start();

include_once('file.php');

var $output = ob_get_contents();

ob_end_clean();
MacAnthony
+1  A: 

It's not possible without a hack. You could use output buffering:

<?php
ob_start();
echo "foo";
ob_end_clean();

Instead of the echo, you put your include statement there.