2016-11-24 19 views
1

出力バッファの内容を変更しようとしています。 私は、何かが、この好きだ:私は$output持っているが、私はすべてをきれいにしてのソースを挿入したい出力バッファを変更するには?

<?php 
    <form> 
     ..... 
    </form> 
?> 

if($this->page == 'login') 
{ 
       $output = ob_get_contents(); // $output is index.html    
       // have no idea how to modify `$output` 
} 

と私のindex.html

<html> 
    <head></head> 
    </body> 
    if($usr ==null) include 'login.php'; 
     else include main.php; //`main.php` with header bar and footer bar 
    // this's where i want to clean and insert my login form (login.php) 
    </body> 
</html> 

login.phplogin.phpを体に入れて、誰もが自分のログインフォームを見ることができるようにしました(スタイルはcssウェブサイトの)。私はGoogleで検索し、コンテンツを取得する方法を知っているだけで、きれいに洗い流してください。しかし、バッファの内容を変更する方法はわかりません。それを変更する方法はありますか?

答えて

2

残りのコードの仕組みがわかりません。しかし、たぶんあなたはと置き換えるためにタグを使うことができます。このようなもの。

index.html 
<html> 
    <head></head> 
    </body> 
    {{body}} 
    </body> 
</html> 


<?php 
//Logic file 
if($this->page == 'login') 
{ 
    $output = ob_get_contents(); // $output is index.html 
    ob_clean(); 
    ob_start(); 
    include 'login.php'; 
    $login_content = ob_get_contents(); // $output is index.html 
    ob_clean(); 
    $content = str_replace('{{body}}', $login_content, $output); 

    echo $content; 
} 
+0

実際、私はindex.phpでそれを行いましたが、あまりにもコードが貧弱だと思います。だから、私はob_get_contentで出力を修正しようとしました。 – Hanata

+0

それはうまくいくはずです。 index.htmlはすべてのページのテンプレートとして使用されていますか? {{body}}に更新しました。これを使って他のページのコンテンツと置き換えることができます。 –

+0

ああ素敵!!! Uは私に良いアイデアをくれました。どうもありがとう。 – Hanata

関連する問題