|
|
|
||||||||||||||||||||||
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Parceiros - CSS para Web Design - S.O.S Designers - Slackware-Brasil - Crie seu Web site - Oficina da Net - Codigo Fonte.net |
Controle da saída em PHPPHP dispõe de funções para controlar na saída de dados para o cliente. Pode-se armazenar a saída em um buffer, para enviá-la ao cliente quando se desejar. Como sabemos, PHP realiza um processamento da página e envia ao computador do usuário o resultado de processar o código PHP. Por regra geral, à medida que vai processando a página, se envia o código HTML resultante ao cliente, porém esta configuração pode mudar, inclusive em tempo de execução.
Com PHP podemos armazenar a saída, à medida que vai se gerando em um buffer. De modo que não se envie nenhum dado ao cliente hasta que se indique expressamente. Existem uma série de funções que utilizam para conseguir este comportamento, que são as funções de controle de saída. Este comportamento é muito útil quando se tem que enviar informação no cabeçalho da página, depois de ter começado a processar o código PHP e ter começado a gerar a saída.
Neste artigo veremos um pequeno exemplo de código PHP que realiza o buffering da saída, para enviá-la uma vez terminado de processar todo o código. Utilizaremos duas funções que possivelmente não conheçamos, para o controle da saída: ob_start() e ob_end_flush(). A função ob_start() serve para indicar a PHP que há que iniciar o buffering da saída, ou seja, que deve começar a salvar a saída em um buffer interno, ao invés de enviá-la ao cliente. De modo que, embora se escreva código HTML com echo ou diretamente fora do código PHP, não se enviará ao navegador até que se ordene explicitamente. Ou eventualmente, até que se acabe o processamento de todo o arquivo PHP. A função ob_end_flush() serve para indicar a PHP que se deseja realizar a inversão de todo o bufer na saída, com o qual se enviará ao cliente que solicitou a página. Vejamos este código: <? ob_start(); echo "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">" ?> <html> <head> <title>Página processada com buffer de saída</title> </head> <body> Esta é minha página!!! </body> </html> <? setcookie("nome", "pepe"); ob_end_flush(); ?> Assim que começar se executa ob_start(). Com isto se salvará toda a saída em um buffer. Agora, quando se escreve na página, na seguinte linha com o echo, e nas outras, fora do código PHP, o único que ocorre é que o mencionado buffer vai enchendo. Antes de terminar a página, no seguinte bloco de código PHP, se envia uma cookie ao navegador do usuário. Essa cookie chega sem problemas e não gera nenhum erro, apesar de ter se escrito código da página, o código não havia sido enviado ao navegador, e sim, havia sido armazenado no buffer. Por último, se executa ob_end_flush() para enviar o buffer à saída. Podemos provar comentando as linhas que se executam as funções ob_start() e ob_end_flush(). Então, veríamos como a função setcookie() provocaria um erro, porque esta função não se pode executar se já se escreveu texto na página e portanto, se enviaram os cabeçalhos do http ao cliente. É um exemplo muito simples do controle da saída em PHP. Porém, a partir daqui se pode complicar tudo o que for preciso. Esperamos que este artigo seja uma interessante introdução para continuar investigando temas relacionados com esta funcionalidade básica de PHP.
Autoria e outras referências sobre este artigo Dentro deste artigo: + 1 manual relacionado + 1 categoria relacionada
Manuais relacionados com este artigo Dentro de Workshop de PHP Seguinte: Controle de saída em PHP II Categorias relacionadas Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo: + Entrar em Scripts em PHPComentários dos visitantes Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
|
| Sobre nós | Copyright | Anuncie | Entrar em contato | <criarweb> |