Jump to content
Fórum Script Brasil
  • 0

Fwrite() para gerar XML com formato UTF-8


eduardoleoni

Question

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 to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...