有没有办法检查通过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
,但这在我目前的设置中是不可能的。
答案 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;
}