2010-12-09 13 views
1

include('to_include.php')経由のインクルードされたドキュメントに何かが返されたかどうかを確認する方法はありますか?include()が何かを返したかどうかを確認する方法?

これは、それがどのように見えるかです:

//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()を使用することですが、これは現在の設定では不可能です。

答えて

1

の間違った終わりを持っていない限り、あなたは、行ってもいいです、それが何かを出力し、変数を設定し、何か:質問の文言を考える

//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; 
} 
+0

あなたは巧妙な*§!?&#:--) – maartenmachiels

+0

うれしいです:)) – Catalin

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_通話を微調整する必要があるかもしれません...私はそれが右メモリからだと思うが、メモリは金魚のことです。

何かを生成してメインコードでそれを確認すると、インクルードファイルに$GLOBALS['done'] = true;のような変数の内容を設定することもできます。

+0

感謝をしてみてください!私はこれを試してみる。 – maartenmachiels

0

私は、関数が定義されている場合

function_exists(); 

はtrueを返します....私は質問のポイントを逃してるかはわからないけど。

include() 

がファイルを含む場合はtrueを返します。

のでfunction_that_generates_some_html_sometimes_but_not_all_the_times()リターンを作る場合は()内のいずれかまたは両方をラップし、私はスティック

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

あなたの洞察をいただきありがとうございますが、ファイルが含まれているかどうかは問題ではありません。私の質問は、含まれているファイルが何かを生成したかどうかについてです。あなたはそれについて考えていますか? – maartenmachiels

+0

function_exists()は、インクルードされたファイルの関数が存在するかどうかをテストします。もしあなたが出力するかどうかを確かめたいのであれば、値を返す関数を得るだけです... – piddl0r

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; 
} 

どちらがあなたの状況で動作するはずですか。そうすれば、出力バッファリング、可変クリープ、などについて心配する必要はありません。

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; 
} 
+0

ありがとう、ありがとうございます!しかし、カタロニア語は最初の;-) – maartenmachiels