PHP Kullanarak CSV Dosyası Oluşturma
PHP’de CSV dosyası oluşturmak için tanımlanmış fonksiyonlar vardır. PhpExcel gibi kütüphaneler yerine bu fonksiyonları kullanmanın birçok avantajı vardır. Daha az kaynak tüketir ve daha hızlıdır.
Öncelikle, CSV dosyamızı oluşturacak bir fonksiyon oluşturalım.
<?php function array_to_csv_function($array, $filename = "export.csv", $delimiter=";") { // Instead of opening a temp file, we use memory space. $f = fopen('php://memory', 'w'); // We're making a loop with an array which contains our data foreach ($array as $line) { // Each array in our array is a line in our CSV file. fputcsv($f, $line, $delimiter); } // File initialization is reset fseek($f, 0); // Php tells the browser that it is a csv file header('Content-Type: application/csv'); // Php tells the browser not to display, to save. header('Content-Disposition: attachment; filename="'.$filename.'";'); // The generated CSV is transferred to the browser. fpassthru($f); }
Bu fonksiyonla, bir CSV dosyası oluşturabilir ve fonksiyona bir dizi dosya adı göndererek tarayıcıya çıktısını alabiliriz. Koddaki her satırı yorumlarla açıkladım. Bu fonksiyonu geçici bir geçici dosya kullanmak yerine bellek alanı kullanacak şekilde ayarladım. Geçici bir geçici dosya kullanmak istiyorsanız, $f = fopen(‘php: // memory’, ‘w’); komutunu $f = fopen(‘php: // output’, ‘w’); komutuyla değiştirin.
Ardından, veritabanından veya bir json verisinden çekerek satırlardan oluşan bir dizi oluşturup fonksiyonumuza gönderiyoruz. Hepsi bu kadar. Örnek olarak aşağıdaki kodu yazdım;
<?php $titles = array("Name", "Surname"); $row1 = array("Erhan", "Kılıç"); $row2 = array("Onur", "Bakır"); $content = array($titles, $row1, $row1); array_to_csv_function($content, "export.csv");