|
|
|
||||||||||||||||||||||
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Parceiros - CSS para Web Design - S.O.S Designers - Slackware-Brasil - Crie seu Web site - Oficina da Net - CodigoFonte.net |
Controle de saída em PHP IIVejamos outras funcionalidades interessantes do controle da saída em PHP, para trabalhar com um buffer de saída. Eliminamos o buffer e executamos funções antes de mostrá-lo. Continuamos explorando algumas utilidades interessantes de PHP para realizar controle de saída, através de um buffer, para não enviar ao cliente o código HTML gerado por PHP até que o programador o deseje.
Este artigo continua com o outro anterior publicado em CriarWeb.com: Controle de saída em PHP. Agora vamos aprender a eliminar ou cancelar uma saída armazenada em um buffer e a executar funções para realizar um processamento do código armazenado em um buffer antes de enviá-lo ao cliente. Para isso, vamos conhecer novas funções: A função ob_clean() limpa o buffer de saída. Isso quer dizer que o que tivermos no buffer de saída se perderá. A função ob_end_clean() serve para limpar o buffer de saída e ademais desabilitá-lo. Ou seja, termina de trabalhar com o buffer e ainda descarta todas as mudanças que tiverem sido incluídas no buffer. Também utilizaremos um parâmetro que não tínhamos visto da função ob_start(parâmetro). Esse parâmetro serve para indicar o nome de uma função que será chamada antes de enviar o buffer de saída ao cliente. Vejamos este código, que faz uso das novas funções e vamos explicando a seguir passo a passo. <html> <head> <title>Página processada com buffer de saída</title> </head> <body> <? //inicio o buffer de saída ob_start(); echo "Oi!!! Isto vai ao buffer!"; //limpo o buffer de saída ob_clean(); echo "Outra vez escrevo!!"; //limpo o buffer de saída e o desabilito ob_end_clean(); echo "Isto sim que vai aparecer na página<br>"; function converte_caracteres_especiais($buffer){ return htmlentities ($buffer); } //inicio o buffer de saída ob_start("converte_caracteres_especiais"); echo "Tinha que provar mais coisas. Espero que se leia com interesse."; ob_end_flush(); ?> </body> </html> Com ob_start(); iniciamos o buffering da saída. A partir de agora tudo o que se escrever na página se salvará no burffer. Portanto, o seguinte echo "Oi!!! Isto vai ao buffer!"; se salvará no buffer. Com a linha ob_clean(); se apaga o conteúdo do buffer, por isso a saída armazenada se perde. Ou seja, o echo anterior não se mostrará na página. O buffer, apesar de estar recém limpo, continua ativo. Por isso com o echo "Outra vez escrevo!!";, o texto continuará inserindo-se no buffer. Logo, com a linha ob_end_clean(); se apaga o conteúdo do buffer e se desabilita. Perdemos outra vê tudo que tiver sido escrito na página a partir do início de uso do buffer, portanto o anterior echo não se mostrará. Na seguinte linha fazemos um echo "Isto sim que vai aparecer na página<br>"; Como tínhamos desabilitado anteriormente o buffer com ob_end_clean(), esse texto se irá direto à saída e chegará ao navegador que solicitou a página. Logo no código vemos uma declaração de uma função: function converte_caracteres_especiais($buffer){ return htmlentities ($buffer); } Utilizaremos esta função para executá-la antes de enviar o buffer ao cliente. Recebe um parâmetro que é o buffer que se está processando. Dentro da função se podem realizar ações e se deve devolver um valor, que será o que definitivamente se envie ao navegador do visitante. Para dizer ao PHP que se deve executar essa função antes de enviar o buffer ao cliente se deve iniciar o uso do buffer ob_start(parâmetro), com o parâmetro que é o nome da função, tal como comentamos antes. ob_start("converte_caracteres_especiais"); O seguinte echo "Tinha que provar mais coisas. Espero que se leia com interesse."; se coloca no buffer. E finalmente com ob_end_flush(); se envia o buffer ao cliente. Como ao iniciar o buffer havia sido indicado um parâmetro com o nome da função converte_caracteres_especiais() se executará essa função antes de enviar o conteúdo ao cliente web. Nesse função simplesmente se processa o buffer, convertendo os caracteres especiais que tiver em seus correspondentes códigos especiais de HTML, com htmlentities(). Portanto, o texto que se enviará ao cliente é o texto que tiver no buffer depois de executar htmlentities(). Conclusão e resultado do controle de saída de PHP Para acabar, podemos ver o código que se geraria e se enviaria ao cliente como resultado do processamento dessa página. <html> <head> <title>Página processada com buffer de saída</title> </head> <body> Isto sim que vai aparecer na página<br><br>Tinha que provar mais coisas. Espero que se leia com interesse.</body> </html>
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 Anterior: Controle da saída em 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 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> |