2011-01-13 13 views
1

私はphpファイルを作りたいと思っています。しかし、これは動作しませんインクルードされたphpファイルを変数にする方法

$print = 'something'; 
$print .= include('register_form.php'); 

print $print; 

すなわち

。 register_form.phpは$ print varにインクルードされず、プリントアウトの開始前にエコーアウトされます。

これを達成する方法はありますか?

私はregister_form.phpに入り、register_form()のようなすべての関数を作成して、これを構造化したために出力を返すことができると知っています(そして私はnewbのビットです)私は単に上記の試みをすることができれば、頭痛が増えます。

ありがとうございました!

答えて

7

output bufferingの代わりにこれを行うことができます。

ob_start(); 
include('register_form.php'); 
$print = ob_get_contents(); 
ob_end_clean(); 


echo $print; 
+0

この方法では、私は私が$印刷変数にプリントアウトしてるすべてのものを置くための必要性を削除しますか? – willdanceforfun

+0

はい、出力バッファリングはすべてのエコー/プリントされたものをバッファに集め、 'ob_get_contents()'でその内容を取り出して、 'ob_end_clean()'で出力バッファリングを停止します。 –

+0

dorkitude、worked治療 – willdanceforfun

0

出力バッファリング:

ob_start(); 
include('register_form.php'); 
$output = ob_get_clean(); 

echo $output; 
1

別のオプションは、のfile_get_contents($ファイル名)です。

ファイル全体を文字列に読み込みます。

file_get_contents

--edit

申し訳ありませんが、もう少し適切にあなたの質問をお読みください。あなたのPHPフォームにecho文がある場合、出力のバフ処理は唯一の方法です。

出力フォーム関数がHTMLを返すようにすれば、出力時に選択できるようになります。それはおそらく小さな頭痛ですが、将来はもっと簡単になります。

+0

ニース!これは私が探していたものです - しかし、それを試して、それはhtmlとしてPHPコードをエコーし​​ます。 – willdanceforfun

+0

はい、私は$ print = file_get_contents($ filename)をやっています。それはすべてを出力します... phpとhtml – willdanceforfun

0

含まれるファイルには戻り値が含まれます。これを出力バッファリングと組み合わせることで、必要なものを正確に達成することができます。

register_form.php

ob_start(); 
// content 
return ob_get_clean(); 

次に、あなたのコードは動作します:

$print = 'something'; 
$print .= include 'register_form.php' ; 
echo $print; 
関連する問題