terça-feira, 9 de agosto de 2011

Removing UTF8 BOM from PHP files



UTF8 Byte Order Mark (BOM) é seqüência de bytes para representar o arquivo como UTF8. A seqüência é hexadecimal  EF BB BF valor também pode vê-lo no início do arquivo como  ï »¿ . Quando estes símbolos é utilizado o editor de texto reconhece esse arquivo como UTF8.




Na maioria dos casos ele cria um problema para programadores PHP. Quando o arquivo php é interpretado estes símbolos enviados para a saída diretamente (porque não estão dentro de <? Php?> Tags). Se o arquivo php modifica ou envia cabeçalhos, BOM é enviado antes de os cabeçalhos (como uma saída) e cabeçalhos de envio falhar. Geralmente você vê esse erro:


Aviso: Não pode modificar a informação de encabeçamento - encabeçamentos já enviada pelo (a saída começou em / path / to / php / public_html / config.php: 28) in / path / to / php / public_html / index.php on line 101


A solução é remover a assinatura BOM UTF8 a partir dos arquivos PHP. No Notepad + + ou EmEditor você pode salvar o arquivo sem BOM UTF8. Outro método consiste em abrir os arquivos com o editor não pode ler com utf8 e remover esses ordem de bytes manualmente.


A maneira mais fácil é a ferramenta bomremover. Você pode obtê-lo  http://code.google.com/p/bomremover/ .






# Cd / path / to / php / files / 
# / caminho / para bomremover / / bomremover.sh-r
Isto irá recursivamente localizar os arquivos e remova o BOM a partir de arquivos.


Para a remoção de BOM de um único arquivo:


# Cd / path / to / php / files / 
# / caminho / para bomremover / / index.php bomremover.sh




Referência:


http://dev.az/wiki/BOMRemover
http://search.cpan.org/ ~ lyokato/UTF8BOM-1.02/lib/UTF8BOM.pm
http://en.wikipedia.org/wiki/Byte_order_mark
http://www.unicode.org/standard/WhatIsUnicode.html

Nenhum comentário :

Postar um comentário

Total de visualizações de página