Criar Web, manuais e recursos para desenvolvimento web
Manuais
Programas
FAQS
Diretório
Comunidade
  Inicio > Manuais > Workshop de PHP
SEÇÕES
Manuais relacionados
+Workshop de PHP
Categorias
+Scripts em PHP

Índice do Manual Workshop de PHP
+ Gestão de ficheiros através de PHP
+ Upload de ficheiros com PHP
+ Verificar a existência de uma URL
+ Leitura sequencial de ficheiros com PHP
+ Escritura em ficheiros com PHP
+ Gestão de directórios com PHP
+ Função que escreve um campo select com valores de uma base de dados
+ Receber o último ID de uma inserção com PHP e MySQL
+ Recolher dados de um Select Multiple com PHP
+ Enviar e-mails pelo PHP
+ Validar um endereço email em PHP
+ Loop para receber todas as variáveis por POST em PHP
+ Enviar um formulário por mail com PHP
+ Paginação de resultados com PHP e MySQL
+ Usuários ativos com PHP
+ Listas de elementos com cores alternas em PHP
+ Programas de livre distribuição em PHP
+ phpMyAdmin
+ Formatação de uma cadeia
+ Cálculo dos dias de um mês em PHP
+ Contador simples para páginas PHP
+ Avaliações dos usuários em PHP
+ Rastrear os robôs de buscadores
+ Recomendar um site usando PHP
+ Criação de um log de erros
+ Comprimir página PHP
+ Contador PHP com imagens
+ Editor PHP Maguma Studio
+ SiteMaps de Google em PHP
+ Teste de velocidade de conexão à Internet
+ Mostrar Conteúdo de acordo com o país em PHP
+ Conteúdos em banco de dados com PHP
+ Problemas com as datas em timestamp Unix de PHP
+ Contar o número de linhas e caracteres em arquivo PHP
+ Transformação Doc, Odt ou Rtf para PDF
+ Preencher um arquivo RTF e gerar o PDF
+ Converter arquivos ods ou xls para pdf
+ PHP isam, ferramenta Web para Arquivos Planos
+ Undefined variable ou Undefined index
+ Agregar carinhas ao sistema
+ Paginator, script para paginação com PHP e MySQL
+ Executar scripts PHP automaticamente através do cron com CURL
+ Uso do FTP com PHP
+ Instalação de One or Zero PHP Helpdesk
+ Portal PHP Nuke
+ Gerando feed RSS de notícias em PHP
+ Blasten blt-SEARCH 1.0.5
+ Classes e Objetos em PHP
+ Recuperando a qualidade de uma imagem JPEG
+ Comprovar se existe o domínio do correio
+ Tutorial de BBCode
+ Função em PHP para o cálculo de minutos transcorridos em duas horas dadas
+ Criação de gráficos em PHP com JpGraph
+ Gerar documentos de Word RTF com PHP
+ Introdução ao Symfony
+ Arredondar decimais em PHP
+ Envio de boletins a e-mails de um banco de dados MySQL
+ Htaccess e páginas dinâmicas
+ Criando imagens com PHP
+ Programar um buscador com PHP e MySQL
+ Loop para receber todos os dados de uma fila de um recordset com PHP
+ Criação de BBcode em PHP
+ Incluir feeds em sua web em 5 passos
+ Calcular dias entre duas datas com PHP
+ Exemplo de conexão com banco de dados Access em PHP
+ Utilizar Curl para copiar uma imagem de uma web em nosso disco rígido
+ Controle da saída em PHP
+ Controle de saída em PHP II
+ Mostrar código PHP de um arquivo com cores ressaltadas
+ Propagar o identificador de sessão de PHP por cookies ou URL
+ Como converter páginas com extensão .PHP à extensão que desejar

Descrição dos capítulos

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 PHP

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

Nota:Como devemos saber, existem funções como header() ou setcookie() que devem se executar antes de ter sido enviado algum texto da página ao cliente. Neste caso contrário se produzirá um erro "Cannot modify header information - headers already sent by…"

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

Manuais relacionados com este artigo
Dentro de Workshop de PHP

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 PHP


Comentários dos visitantes
Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
Acrescentar um comentário do artigo Acrescentar um comentário do artigo



Sobre nós | Copyright | Anuncie | Entrar em contato <criarweb>

Hospedado por Hostnet Hospedagem de Sites