Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Diego Rinno

Para que serve o ob_start()?

Recommended Posts

Então, como o título já diz (e pode até ser uma dúvida boba...), o problema é que eu li e reli quinhentas vezes o manual do PHP pro ob_start() e não consegui entender o motivo de, por vezes, utilizarem isso nos scripts. A dúvida pode até ser boba, é algo bastante utilizado, então deve ser de grande serventia, rs.

 

Estou tendo tanta dificuldade com isso quanto tenho com criar uma classe que funcione HSUAHSUHA

Faço tudo direitinho como vejo nos tutoriais mas sempre dá erro de sintaxe e eu acabo desistindo e deixo pra tentar depois, o famoso "vou empurrando com a barriga", rs.

 

Enfim, se alguém souber me dar uma luz mais clara que a do manual, é porque eu realmente já li e reli mas não entendi lá :/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simplificando ao máximo:

 

Toda vez que você usa funções/statements de saída de dados (echo, print, printf, etc.), o comportamento padrão do PHP é adicionar o conteúdo ao corpo da requisição HTTP e enviar o que foi "impresso".

Isso também ocorre quando você coloca texto (ou html) fora das tags [inline]<?php ?>[/inline].

 

Por essa característica, o PHP não permite que você mude headers da resposta (que incluem o redirecionamento, feito com Location, o início de uma sessão, que envia um cookie, etc) depois do primeiro caractere do corpo da requisição ter sido enviado.

 

Isso se torna um problema quando vocè precisa alterar headers, mas já gerou uma saída para o navegador (o corpo da requisição).

 

Por essa razão, existem as funções ob_*.

[inline]ob_start[/inline] te permite "capturar" toda a saída gerada em um buffer. Dessa forma, nada será enviado e você pode armazenar toda a saída em uma string e mostrá-la somente no final do seu script, obtendo o conteúdo do buffer através de funções como [inline]ob_get_clean[/inline].

Compartilhar este post


Link para o post
Compartilhar em outros sites

A grosso modo, serve para manipular saídas de dados (segura, apaga, pausa, etc).

 

É isso aí :yes:

 

Off: Sem coragem pra digitar ontem :skull:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz, as pessoas aqui deviam ser professores rs

 

Muito obrigado pessoal, finalmente consegui entender e ainda de quebra resolvi uma gambiarra que eu tinha feito no sistema de login com perfil de usuário e redirecionamento. Simplifiquei o código e coloquei tudo numa só página, com condições e ainda deu (com as explicações aqui) pra corrigir o erro do "headers already sent", o que me permitiu facilitar o acesso e tal!

 

Valeu, galera! Agora já sei como funciona, pra que serve e já até testei!

 

Resolvido!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.