如何修改输出缓冲区?

时间:2016-11-24 10:56:30

标签: php html css output php-5.5

我试图修改输出缓冲区的内容。 我有类似的东西:

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.php

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

我有$output但是我想要清除所有内容并将login.php的来源插入到正文中,这样每个人都可以看到我的登录表单(对于网站的样式有css )。我在谷歌上搜索过,只知道如何获取内容,清理和刷新。但我不知道如何修改缓冲区内容。有没有办法修改它?

1 个答案:

答案 0 :(得分: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;
}