v2.5.2
Giriş yap

PHP Oluşturulan Excel sayfası local de calışıyor fakat sunucu da çalışmıyor

rasimk
553 defa görüntülendi

Php ile veritabanında ki bilgileri excele aktarıyorum ve bir excel dosyası oluşturuyorum ve indiriyorum.
Localhostta gayet normal çalışırken server tarafında bana excele yazılacak verileri çıktı olarak veriyor ve herhangi bir excel oluşturup indirmiyor.

<?php
   class Excel {
    private $fp=null;
    
    function __construct()
    { 
        $this->fp = fopen('php://output', 'w');
    }
    
    function doldur($data=array()){
        //UTF-8  Excel
        fputs($this->fp, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) ));
        if ($this->fp)
        {
            foreach($data as $d)
            { 
                if(!isset($isaret)) {
                    fputcsv($this->fp,array_keys($d), ";");
                    $isaret = true;
                } 
               fputcsv($this->fp, $d, ";"); 
            }    
        }
        fclose($this->fp);
    }
    
    function kaydet($dosya){
        header('Pragma: public');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Content-Description: File Transfer');
        header('Content-Type: text/csv');
        header("Content-Disposition: attachment; filename=$dosya.csv;");
        header('Content-Transfer-Encoding: binary'); 
    }
}
?>

Excel oluşturmak için kullandığım class bu.

include "excel.php";


$dsn = 'mysql:dbname=x;host=localhost';
$kullanici = 'root';
$sifre = '';

try {
    $baglanti = new PDO($dsn, $kullanici, $sifre);
} catch (PDOException $e) {
    echo 'Bağlantı kurulamadı: ' . $e->getMessage();
}

$sorgu=$baglanti->prepare("SELECT * FROM x");
$sorgu->execute();
$liste=$sorgu->fetchAll(PDO::FETCH_ASSOC);



$excel =new Excel();
$excel->doldur($liste);
$excel->kaydet("gonulluler");

Bu da classı kullandığım sayfa.

Benzer bir yolla word dosyası da oluşturup indiriyorum on da herhangi bir sorun olmuyor.

Cevap yaz
Cevaplar (0)
Henüz kimse cevap yazmadı. İlk cevap yazan sen ol!