2009-12-05 4 views
2

Nous avons un cadre personnalisé que nous utilisons, qui nous permet de include le code dans d'autres pages. Cependant, l'en-tête de ce code est toujours imprimé, même si le code include ne génère aucun résultat. Y at-il un moyen que je peux exit, ou return quelque chose de spécifique, que je peux piéger et attraper via include/require, de sorte que je puisse faire la bonne chose?PHP Catch "Empty" Includes

Répondre

5

Activez la mémoire tampon de sortie, comprennent le fichier, puis vérifier son contenu:

ob_start(); 
include "file.php"; 
$content = ob_get_contents(); 
ob_end_clean(); 

Après que l'enregistrement du contenu généré et soit le garder ou le vider.

Meilleurs voeux, Fabian

3

Cela pourrait ne pas être la solution la plus appropriée, mais c'est un truc sympa. Vous pouvez réellement utiliser PHP-includes comme fonctions et renvoyer des valeurs.

Par exemple. Créez un fichier appelé myinclude.php:

<?php 

$a = 9192*9192; 
return a; 

Ensuite, créez un second fichier et comprennent le premier:

<?php 

$res = include("myinclude.php"); 
echo $res; 

Oui, cela fonctionne réellement. Voir le manual page pour plus de détails. Notez également que si rien n'est explicitement renvoyé à partir du fichier include, include() renverra "OK" (curieusement). Cela fonctionne pour require(), include_once() et require_once() aussi bien.

+0

Ceci est une méthode intéressante, et si je pouvais donner la bonne réponse à vous deux, je le ferais, car l'utilisation de la méthode de @ halfdan en conjonction avec la vôtre m'a * exactement * ce dont j'avais besoin. Merci! –