如何检查include()是否返回了什么?

时间:2010-12-09 14:01:02

标签: php include return

有没有办法检查通过include('to_include.php')包含的文件是否返回了任何内容?

它的外观如下:

//to_include.php
echo function_that_generates_some_html_sometimes_but_not_all_the_times();

//main_document.php
include('to_include.php');
if($the_return_of_the_include != '') { 
    echo $do_a_little_dance_make_a_little_love_get_down_tonight; 
}

因此,在我的主文档中包含to_include.php之后,我想检查所包含的文档是否生成了任何内容。

我知道显而易见的解决方案是在function_that_generates_some_html_sometimes_but_not_all_the_times()中使用main_document.php,但这在我目前的设置中是不可能的。

5 个答案:

答案 0 :(得分:1)

如果您正在谈论生成的输出,您可以使用:

ob_start();
include "MY_FILEEEZZZ.php";
function_that_generates_html_in_include();
$string = ob_get_contents();
ob_clean();
if(!empty($string)) { // Or any other check
    echo $some_crap_that_makes_my_life_difficult;
}

可能必须调整ob_调用......我认为这是从记忆中得到的,但记忆是金鱼的记忆。

您还可以在生成内容时在include文件中设置变量的内容,如$GLOBALS['done'] = true;,并在主代码中检查它。

答案 1 :(得分:1)

make function_that_generates_some_html_sometimes_but_not_all_the_times()在输出内容并设置变量时返回一些内容:

//to_include.php
$ok=function_that_generates_some_html_sometimes_but_not_all_the_times();

//main_document.php
$ok='';
include('to_include.php');
if($ok != '') { 
    echo $do_a_little_dance_make_a_little_love_get_down_tonight; 
}

答案 2 :(得分:1)

考虑到问题的措辞,听起来好像你想要这个:

//to_include.php
return function_that_generates_some_html_sometimes_but_not_all_the_times();

//main_document.php
$the_return_of_the_include = include 'to_include.php';
if (empty($the_return_of_the_include)) { 
    echo $do_a_little_dance_make_a_little_love_get_down_tonight; 
} else {
    echo $the_return_of_the_include;
}

哪种情况适用于您的情况。这样你就不必担心输出缓冲,变量蠕变,

答案 3 :(得分:0)

我不确定我是否错过了问题的重点,但......

function_exists();

如果定义了函数,则返回true。

include() 
如果包含文件,则

返回true。

所以将其中一个或两个包裹在if()中并且你很高兴,除非我错了结束

if(include('file.php') && function_exists(my_function))
{
 // wee
}

答案 4 :(得分:0)

// to_include.php
$returnvalue = function_that_generates_some_html_sometimes_but_not_all_the_times();
echo $returnvalue;

//main_document.php
include('to_include.php');
if ( $returnvalue != '' ){
   echo $do_a_little_dance_make_a_little_love_get_down_tonight; 
}