2009-07-22 10 views
4

Je suis en train de coder un site web et j'ai une fonction php appelée site_nav.php qui définit d'abord un tableau $ list et qui l'envoie dans un format json.PHP include w/o echo

De cette façon, je peux obtenir ma carte du site Web avec ajax.

Mon problème est que maintenant, je voudrais obtenir l'objet $ list en php, sans faire d'écho à l'objet json.

Ma question: Y at-il un moyen d'inclure mon fichier php sans activation de l'appel d'écho qui s'y trouve?

Merci beaucoup!

Répondre

17

Oui, utilisez simplement la mise en mémoire tampon de sortie. Voir la documentation sur ob_start et ob_end_clean.

ob_start(); 
include("file.php"); 
ob_end_clean(); 
+1

doh bat mon de 20 secondes;) –

3

Vous pouvez utiliser la mise en mémoire tampon de sortie pour cela.

ob_start(); 
include("myfile.php"); 
ob_end_clean(); 
+0

Merci! beaucoup! – malavv

6

Vous pouvez utiliser un tampon de sortie pour capturer la sortie dans une chaîne.

ob_start(); 

include_once('file.php'); 

var $output = ob_get_contents(); 

ob_end_clean(); 
+0

Cela provoque l'écho de mon fichier deux fois (lorsque j'écoute $ output après l'avoir configuré comme vous l'avez fait). Une idée pourquoi? –

+0

Nevermind J'ai utilisé 'ob_get_clean()' à la place pour corriger ce –

1

Ce n'est pas possible sans un hack. Vous pouvez utiliser la mise en mémoire tampon de sortie:

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

Au lieu de l'écho, vous y ajoutez votre instruction include.