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

PHP: ob_get_clean( );


Frank K Hosaka

Pergunta

Finalmente, consegui montar um arquivo csv no servidor e baixar no notebook.

O meu problema estava no comando readfile("$pBling.csv"), ele baixava o arquivo csv mas também todo o código HTML que fazia parte do contexto do código PHP.

Na base da persistência, encontrei o comando ob_get_clean que "limpa" a área de trabalho e só manda o arquivo csv.

arquivo bling.php
<?php
include('menu.php');
$pedido=$_GET['pedido'];
$pBling=$_GET['pBling'];
$query=$mysqli->query("select count(bling) as contagem from tbpedido where bling=$pBling");
$verificar=$query->fetch_all(MYSQLI_ASSOC)[0]['contagem'];
if($verificar)
{
  	exit;
}
$mysqli->query("update tbpedido set bling=$pBling where ped=$pedido");
$contato="Consumidor Final";
$query=$mysqli->query("select * from tbhistped where ped=$pedido");
$itens=json_decode(json_encode($query->fetch_all(MYSQLI_ASSOC)));
$query=$mysqli->query("select sum(subtotal) as soma from tbhistped
            where subtotal < 0 and ped=$pedido");
$desconto=($query->fetch_assoc()['soma']) ? abs($query->fetch_assoc()['soma']) : 0;
$query=$mysqli->query("select total from tbpedido where ped=$pedido");
$total=$query->fetch_assoc()['total'];
$query=$mysqli->query("select dia from tbpedido 
            where ped = $pedido");
$data=date('d/m/Y',strtotime($query->fetch_assoc()['dia']));
$dados = array(
    array("Número pedido","Nome Comprador","Data","CPF/CNPJ Comprador","Endereço Comprador",
        "Bairro Comprador","Número Comprador","Complemento Comprador","CEP Comprador","Cidade Comprador",
        "UF Comprador","Telefone Comprador","Celular Comprador","E-mail Comprador","Produto",
        "SKU","Un","Quantidade","Valor Unitário","Valor Total",
        "Total Pedido","Valor Frete Pedido","Valor Desconto Pedido","Outras despesas","Nome Entrega",
        "Endereço Entrega","Número Entrega","Complemento Entrega","Cidade Entrega","UF Entrega",
        "CEP Entrega","Bairro Entrega","Transportadora","Serviço","Tipo Frete",
        "Observações","Qtd Parcela","Data Prevista","Vendedor","Forma Pagamento",
        "ID Forma Pagamento"));
foreach($itens as $item)
{
    if($item->subtotal>0)
    {
        $dados[]=array($pBling,$contato,$data,null,null,
            null,null,null,null,null,
            null,null,null,null,null,
            $item->codprod,$item->un,$item->qt,$item->unitario,$item->subtotal,
            $total,null,$desconto,null,null,
            null,null,null,null,null,
            null,null,null,null,null,
            null,1,$data,null,1,
            0);
    }
}
$arquivo = fopen("$pBling.csv", "w");
fputcsv($arquivo, $dados[0]);
foreach ($dados as $linha) 
{
    if ($linha != $dados[0]) 
    {
        fputcsv($arquivo, $linha);
    }
}
fclose($arquivo);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename("$pBling.csv"));
header('Content-Length: ' . filesize("$pBling.csv"));
ob_get_clean();
readfile("$pBling.csv");
unlink("$pBling.csv");

 

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...