My Opera is closing 3rd of March

Iniciando o Hoje

Começando a avançar

Como criar um arquivo XML dinamicamente em PHP

, ,

Quem nunca sentiu a necessidade de escrever um arquivo XML dinamicamente ? Pois bem o difícil não é escreve-lo, e sim fazer ele aceitar a sua codificação, ainda mais aqui no brazil onde tempos "ç", "á", "à" dentre outros. Então vamos aos poucos.

Vamos aprender a criar um arquivo XML com a codificação UTF-8, utilizando o PHP;

Se você deseja que uma arquivo *.php seja um XML adicione o seguinte código no seu arquivo:
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
header( 'Cache-Control: post-check=0, pre-check=0', false );
header( 'Pragma: no-cache' );
#Acima tempo um código para não salvar no cache para que toda vez que você acesse o arquivo ele seja atualizado
//Abaixo temos a configuração do nosso tipo de arquivo.
header('Content-type: application/xml; charset="UTF-8"',true);


Você também pode criar um arquivo *.xml e programa-lo em php, =D, como ?! crie um arquivo ".htaccess" com o conteúdo abaixo, e salve.
AddHandler application/x-httpd-php .xml


Detalhes a parte vamos ao que importa, a função abaixo já codifica o arquivo da forma UTF-8
<?php
function xmlChar($s){
 $chr = array();
 $chrRe = array();
 $ms = preg_replace("/[0-9a-zA-Z\s\/;:.?=]/", '', $s); //Pega apenas os caracteres que deve ser codificado
 for($i=0;$i<strlen($ms);$i++){
  $chr[] = $ms[$i]; // Salva em um array o caractere a ser substituído
  $chrRe[] = "&#".ord($ms[$i]).";"; // Salva a codificação do caractere a ser substituído
 }
 return str_replace($chr, $chrRe, $s); // Substitui o caracteres =D
}
?>


E fica assim, no nosso resultado final:
<?php
 header( 'Cache-Control: no-store, no-cache, must-revalidate' );
 header( 'Cache-Control: post-check=0, pre-check=0', false );
 header( 'Pragma: no-cache' );
 header('Content-type: application/xml; charset="UTF-8"',true);

 function xmlChar($s){
  $chr = array();
  $chrRe = array();
  $ms = preg_replace("/[0-9a-zA-Z\s\/;:.?=]/", '', $s);
  for($i=0;$i<strlen($ms);$i++){
   $chr[] = $ms[$i];
   $chrRe[] = "&#".ord($ms[$i]).";";
  }
  return str_replace($chr, $chrRe, $s);
 }

 print '<?xml version="1.0" encoding="utf-8" '.chr(63).'>'."\n";
?>
 <fsdev>
  <primeiroNo>
   <nome><?php echo xmlChar("Flávio de Oliveira Silva")?></nome>
   <site><?php echo xmlChar("http://www.flaviosilva.net")?></site>
   <texto><?php echo xmlChar("É isso ai pessoal, obrigado pela visita. (áéêç) <- tudo certo XD")?></texto>
  </primeiroNo>
 </fsdev> 

Manipulação de CookiesSaiba como subir no PageHank

Write a comment

New comments have been disabled for this post.

February 2014
S M T W T F S
January 2014March 2014
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28