Pular para o conteúdo principal

Caracteres de nova linha no PHP

Como sabemos, todos os caracteres que estão fora das TAGS de abertura e fechamento do PHP “<?php ?>” são copiados pelo interpretador e enviados para a saída padrão diretamente. Incluindo caracteres de nova linha. Por padrão a maioria dos navegadores ignora esses caracteres, pois eles não fazem parte da semântica do HTML.  Porém, devemos lembrar que esse caractere também é utilizado na resposta de requisições HTTP geradas pelo WebServer e serve para separar o header do restante dos dados. Portanto a saída de um caractere de nova linha antes de todos os cabeçalhos terem sido escritos poderá causar problemas.

Como quando precisamos alterar o header por exemplo, sabemos que isso deve ser feito antes de qualquer saída ter sido enviada ao browser. Caso contrário ele irá gerar um erro como esse:
Cannot send session cookie - headers already sent by (output started a....

Pois os cabeçalhos já haviam sido escritos.

Caracteres de nova linha após a tag de fechamento "?>" de arquivos incluídos com os comandos include ou require também podem gerar esse problema. Para ajudar a amenizar o problema, o parser elimina automaticamente o primeiro caractere de nova linha após a tag "?>". Essa regra também ajuda a lidar com alguns editores que acrescentam automaticamente uma nova linha no final do arquivo.


Uma maneira fácil de prevenir outputs indesejados é omitir a tag the fechamento do final do arquivo php, que o analisador (parser) considera isto perfeitamente legal.


Referências:
php|architect’s Zend PHP 5 Certification Guide. David Shafik and Ben Ramsey.

Comentários

Postagens mais visitadas deste blog

Virtualizando Mikrotik Com VirtualBox

Este texto mostra um passo-a-passo para instalar o mikrotik em uma máquina virtual do VirtualBox, seja somente para testes ou para montar realmente um servidor para a rede. Antes de iniciarmos nossa aventura é interessante visitar o site do Mikrotik e baixar uma imagem ISO que é disponibilizada no site com uma licensa full durante 24h. Iremos utilizá-la para instalar o Mikrotik. Para tanto, vá até a página de download do Mikrotik (http://www.mikrotik.com/download.html), em “select system type” escolha a opção “Other X86 platform” e em “Select Software Type” escolha "stable". Depois basta clicar em “ISO image” e baixar o arquivo. 1 – Abra o Virtual Box e clique em “Novo” para que possamos criar uma nova máquina Virtual onde será instalado o mikrotik.     2 – Irá aparecer uma tela de boas vindas, basta clicar em próximo para ir à próxima fase:     3 – Na próxima tela é dada a opção de escolher o nome da máquina virtual, o S.O. e sua respectiva versão. No cam...

Instalação do RVM no Ubuntu 12.10

Primeiro vamos instalar os pacotes build-essential e git-core:  $ sudo apt-get install build-essential git-core A instalação do RVM é feita utilizando CURL. Se você ainda não tem ele instalado instale-o: $ sudo apt-get install curl Para instalar a RVM use o comando abaixo: $  bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer) Agora precisamos adicionar uma linha ao arquivo bashrc para que o bash saiba aonde encontrar a RVM. Para isso execute o comando abaixo, mas certifique-se de substituir ‘fernando’ pelo seu nome de usuário. $ echo   '[[ -s "/home/andre/.rvm/scripts/rvm" ]] && source "/home/andre/.rvm/scripts/rvm"'  >> ~/.bashrc Agora execute:  $ source ~/.bashrc Podemos ver se a RVM está corretamente instalada através do comando:  $ type rvm | head -1 Agora precisamos ver os req...

Google +. Nova rede social do Google

A google anúnciou seu mais novo projeto. Uma nova rede social, chamada Google +. A mesma tem a pretensão de derrubar, nada mais nada menos que o Facebook. O projeto ainda está em fase de desenvolvimento e não está aberta a todos, porém algumas novidades já podem ser conferidas no link abaixo. http://www.google.com/intl/pt-BR/+/learnmore/index.html#circles Confiram!