Na versão 5.4 do PHP, as funções htmlspecialchars() e htmlentities() passaram por um refactoring e tiveram grandes porções internas de código reescritas. Além de melhorias e correções de bugs, o terceiro parâmetro destas funções (que até então tinha como default ISO-8859-1), passou a ser UTF-8, refletindo o encoding usado pela maioria das aplicações.

Entretanto, alguns cuidados devem ser adotados, principalmente por quem ainda utiliza PHP sobre bases de dados ISO-8859-1. Ao utilizar uma dessas funções sobre uma string ISO com caracteres acentuados, o retorno (que antes funcionava), agora passa a ser vazio (string vazia).

Para testar, basta digitar o conteúdo a seguir e salvar em um arquivo ISO. Você verá que o retorno será string vazia.
  1. <?php
  2. var_dump(htmlspecialchars'São Paulo'));
  3. ?>


Como dito anteriormente, o encoding padrão aguardado por estas funções passou a ser UTF-8. Assim, quando você utilizar essas funções com uma string que não está em UTF-8, deverá indicar o encoding como parâmetro, como no exemplo a seguir.

  1. <?php
  2. var_dump(htmlspecialchars'São Paulo'0"iso-8859-1"));
  3. ?>


Comentários

 


Você precisa realizar login pelo Facebook para enviar posts, comentários, apagar posts ou baixar posts em PDF. Para isso, clique no botão "Login no facebook".



Receba os posts por email: (?)

Conheça o Adianti Framework para PHP:

  • Desenvolvimento com componentes;
  • Formulários e datagrids.
  • Versão Web e Desktop (Gtk);
  • Multiplataforma;
  • Desenhe as interfaces;
  • IDE própria (Adianti Studio).
Ver detalhes...

Tenha mais produtividade com:

Adianti Studio: IDE para PHP

  • Leve e rápido;
  • Syntax highlight;
  • Gerência de projetos;
  • Navegação em banco de dados;
  • Autocomplete e plugins.
Mais informações...