Ir para conteúdo
Fórum Script Brasil
  • 0

Fwrite() para gerar XML com formato UTF-8


eduardoleoni

Pergunta

Olá,

Estou usando deste código:

agregadores.inc

function vale_junto($montatexto)
 {

  unlink("XML/BaixadaClube/vale_junto.xml");

  $interrogacao = "?";
  $texto =
  "<?xml version = '1.0' encoding = 'utf-8'$interrogacao>

  <OFERTAS>


 $montatexto

  </OFERTAS>";
  $fp = fopen("XML/BaixadaClube/vale_junto.xml", "w");
  fwrite($fp, pack("CCC",0xef,0xbb,0xbf));
  fwrite($fp,utf8_encode($texto));
 }
xml_valejunto_programa.php
<?php
session_start();
header("Content-Type: application/xhtml+xml; charset=utf-8", true);

include("ccompras.inc");

$origem = $_SESSION['origem'];
$cn = db_Conect( $origem );
include ("agregadores.inc");
$mysql = "SELECT * from feedback where user_id = 0 order by create_time";
$result= mysql_query($mysql);
$contador = 0;

if ($origem == 1)
       {
        $site = "www.valearte.com.br";
       }

if ($origem == 2)
       {
        $site = "www.baixadaclube.com.br";
       }
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="xhtml+xml; charset=utf-8" />
<title>:: Atuall Digital :: Gerenciamento de FEEDs ::</title>
<style type="text/css">
<!--
body {
    background-color: #bdd9e7;
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
}
.style2 {
    font-size: 18px;
    font-weight: bold;
    font-family: "Trebuchet MS";
    color: #FFFFFF;
}
.style3 {color: #292728}
.style4 {color: #CCCCCC}
body,td,th {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
    color: #000000;
}
a {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
    color: #000066;
    font-weight: bold;
}
a:link {
    text-decoration: none;
}
a:visited {
    text-decoration: none;
    color: #000066;
}
a:hover {
    text-decoration: underline;
    color: #CC6600;
}
a:active {
    text-decoration: none;
    color: #000066;
}
.style5 {color: #FFFFFF}
-->
</style></head>

<body>
<table width="960" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="960" align="center" valign="middle" bgcolor="#FFFFFF" scope="col"><br />
      <table width="920" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="920" height="80" background="images/barra_01.png" bgcolor="#f1f2f3" scope="col">&nbsp;</td>
      </tr>
      <tr>
        <td width="920" height="30" bgcolor="#292728"><table width="920" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="760" height="30" scope="col" align="left"><span class="style2"><span class="style3">...</span>Administra&ccedil;&atilde;o (<span class="style4"><?php echo "$site" ?></span>)</span></td>
            <td width="160" bgcolor="#292728" scope="col"><div align="right"><a href="painel.php"><img src="images/bot_voltar_01.png" alt="Sair" width="83" height="20" border="0" /></a><a href="index.php"></a><a href="index.php"></a></div></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td width="920" align="center" valign="middle" bgcolor="#f1f2f3"><p><br />
           <?PHP
           
           $data = date("d/m/Y");

$selecionatodos = mysql_query("SELECT * FROM xml_ofertas WHERE data = '$data' and id_agregador = 3");
while ( mysql_num_rows($selecionatodos) > $contador )
{
    $id = mysql_result($selecionatodos , $contador , "team_id");
    $habilita = mysql_result($selecionatodos , $contador , "habilitado");
    if ($habilita == "sim")
    {
    $habilita = "1";
    }
    else
    {
    $habilita = "0";
    }
    $seleciona = mysql_query("SELECT * FROM team WHERE id = $id"); //buscando oferta
    if (mysql_num_rows($seleciona) > 0)
       {
          $titulo = mysql_result($seleciona, 0, "title");
          $preco_original = mysql_result($seleciona, 0, "market_price");
           $preco_promocional = mysql_result($seleciona, 0, "team_price");
        $foto = mysql_result($seleciona, 0, "image");
        $id_parceiro = mysql_result($seleciona, 0, "partner_id");
        $max_por_pessoa = mysql_result($seleciona, 0, "per_number");
        $min_valer = mysql_result($seleciona, 0, "min_number");
        $max_limite = mysql_result($seleciona, 0, "max_number");
        $regras = mysql_result($seleciona, 0, "notice");
        $regras = strip_tags($regras);
        $detalhes = mysql_result($seleciona, 0, "detail");
        $detalhes = strip_tags($detalhes);
        $encerramento = mysql_result($seleciona, 0, "expire_time");
        $encerramento = date("d/m/Y H:i:s",$encerramento);
        $inicio = date("d/m/Y H:i:s");
        $categoria = mysql_result($seleciona, 0, "categoria_valejunto");
        }
   
    $seleciona2 = mysql_query("SELECT * FROM partner WHERE id = $id_parceiro"); //buscando dados do parceiro
    if (mysql_num_rows($seleciona2) > 0)
       {
          $nome_parceiro = mysql_result($seleciona2, 0, "title");
          $endereco = mysql_result($seleciona2, 0, "location");
           $endereco = strip_tags($endereco);
          $cidade = mysql_result($seleciona2, 0, "cidade");
          $bairro = mysql_result($seleciona2, 0, "bairro");        
        $coordenadas_google = mysql_result($seleciona2, 0, "coordenadas_google");        

                        
       }

    $desconto = 100 - (($preco_promocional/$preco_original)*100);
      $desconto = number_format($desconto, 0);
    
     $montatexto = $montatexto .  "
        <OFERTA>
        <ID>$id</ID>
        <Titulo>$titulo</Titulo>
        <Foto>http://$site/static/$foto</Foto>
        <Cidade>$cidade</Cidade>
        <PrecoTotal>$preco_original</PrecoTotal>
        <PrecoDesconto>$preco_promocional</PrecoDesconto>
        <PorcentoDesconto>$desconto</PorcentoDesconto>
        <InicioOferta>$inicio</InicioOferta>
        <FimOferta>$encerramento</FimOferta>
        <QuemOferta>$nome_parceiro</QuemOferta>
        <Rua>$endereco</Rua>
        <Numero></Numero>
        <Complemento></Complemento>
        <CEP></CEP>
        <Bairro>$bairro</Bairro>
        <CidadeLocalizacao>$cidade</CidadeLocalizacao>
        <Estado>RJ</Estado>
        <Categoria>$categoria</Categoria>
        <Coordenadas>$coordenadas_google</Coordenadas>
        <SiteOferta>http://$site/</SiteOferta>
        <CuponsEnviados></CuponsEnviados>
        <CuponsDisponiveis></CuponsDisponiveis>
        <ValidadeOferta></ValidadeOferta>
        <SiteAnunciante>Baixada Clube</SiteAnunciante>
          </OFERTA>"
        
    ;
        
        $montatexto = ereg_replace("[ÁÀê]","a",$montatexto);    
        $montatexto = ereg_replace("[ÉÈÊ]","e",$montatexto);    
        $montatexto = ereg_replace("[ÍÌÎ]","i",$montatexto);
        $montatexto = ereg_replace("[ÓÒÔÕº]","O",$montatexto);    
        $montatexto = ereg_replace("[ÚÙÛ]","U",$montatexto);    
        $montatexto = ereg_replace("[áàâãª]","a",$montatexto);    
        $montatexto = ereg_replace("[éèê]","e",$montatexto);    
        $montatexto = ereg_replace("[íìî]","I",$montatexto);
        $montatexto = ereg_replace("[óòôõº]","o",$montatexto);    
        $montatexto = ereg_replace("[úùû]","u",$montatexto);    
        $montatexto = str_replace("&nbsp;","",$montatexto);
        $montatexto = ereg_replace("[ç]","c",$montatexto);
        $montatexto = ereg_replace("[Ç]","C",$montatexto);
        vale_junto($montatexto);
    
    $contador++;
}


$fp = fopen("XML/BaixadaClube/vale_junto.xml", "r");
while (!feof($fp)){
    $char .= fgetc($fp);
} 
fclose($fp);
//$char = strip_tags($char);
//$char = trim($char);
$tamanho = strlen($char);
$testa = substr($char, $tamanho - 10, $tamanho);

if ($testa == "</OFERTAS>")
{
    echo "O Arquivo XML foi gerado com sucesso!<br />
          Clique <a href = 'xml_valejunto_01.php'>aqui</a> para concluir";
}
else
{
    echo "Houve alguma falha e a geração do XML não foi realizada.
    <br />
    <input type='button' value='TENTE NOVAMENTE' onClick='history.go(0)'> ";
}


//echo "<textarea rows='2' cols='20'> $char</textarea>";;
?>
           
         
          <p><br />
            </p>
          </td>
      </tr>
      <tr>
        <td width="920" height="50" background="images/baixo_01.png" bgcolor="#f1f2f3">&nbsp;</td>
      </tr>
    </table>
    <br /></td>
  </tr>
</table>
</body>
</html>

Meu XML é gerado com sucesso, no entanto para que o programa que vai lê-lo funciona corretamente, este precisa estar em formato UTF-8.

Quando utilizo o validador de XML http://validator.w3.org/ ele acusa que estou utilizando US-ASCII. Como efetuar a conversão para UTF-8? Já tentei de várias maneiras e não consigo, qual o problema?

Desde já agradeço :)

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,5k
    • Posts
      652,3k
×
×
  • Criar Novo...