2016-11-24 6 views
1

Я пытаюсь изменить содержимое выходного буфера. я получил что-то любит это:Как изменить выходной буфер?

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 для стиля сайта). Я искал в 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

о, хорошо !!! Я дал мне хорошую идею. Большое спасибо. – Hanata

 Смежные вопросы

  • Нет связанных вопросов^_^