Saya punya data di database MySQL. Saya mengirimkan URL kepada pengguna untuk mengeluarkan data mereka sebagai file CSV.
Saya memiliki e-mail tautan, permintaan MySQL, dll. Tertutup.
Bagaimana saya, ketika mereka mengklik tautan, memiliki pop-up untuk mengunduh CVS dengan catatan dari MySQL?
Saya memiliki semua informasi untuk mendapatkan catatan. Saya hanya tidak melihat bagaimana membuat PHP membuat file CSV dan membiarkan mereka mengunduh file dengan ekstensi .csv.
php
csv
download
http-headers
d -_- b
sumber
sumber
php: // output
fputcsv
sumber
outputCSV
fungsinya tidak perlu rumit. Anda bisaforeach
berakhir$array
, mengirimkan nilainya langsung kefputcsv
. Tidak perlu untuk itu__outputCSV
danarray_walk
:)foreach($data as $vals) {fputcsv($filehandler,$vals);}
"Prévalence","age 1","city 1"
Ada ide? Messing dengan UTF-8 sejauh ini tidak membantu.Ini adalah versi perbaikan fungsi dari php.net yang diposting oleh @Andrew.
Sangat mudah digunakan dan bekerja sangat baik dengan set hasil MySQL (i) / PDO.
Ingat untuk
exit()
setelah menelepon ini jika Anda selesai dengan halaman.sumber
fputcsv($outstream, array_keys($results[0]));
tepat sebelum Andaforeach
juga sertakan tajuk kolom.Selain semua yang sudah dikatakan, Anda mungkin perlu menambahkan:
Ini sangat berguna saat menangani file dengan banyak bahasa di dalamnya, seperti nama orang, atau kota.
sumber
Utasnya agak tua, saya tahu, tetapi untuk referensi di masa depan dan untuk noobs seperti saya:
Semua orang di sini menjelaskan cara membuat CSV, tetapi kehilangan bagian dasar dari pertanyaan: cara menautkan. Untuk menautkan unduhan file CSV, Anda cukup menautkan file .php, yang pada gilirannya merespons sebagai file .csv. Header PHP melakukan itu. Ini memungkinkan hal-hal keren, seperti menambahkan variabel ke querystring dan menyesuaikan output:
my_csv_creator.php dapat bekerja dengan variabel yang diberikan dalam querystring dan misalnya menggunakan kueri basis data yang berbeda atau yang disesuaikan, mengubah kolom CSV, mempersonalisasikan nama file dan sebagainya, misalnya:
sumber
Buat file Anda lalu kembalikan referensi ke sana dengan tajuk yang benar untuk memicu Save As - edit yang berikut ini sesuai kebutuhan. Masukkan data CSV Anda ke $ csvdata.
sumber
Berikut adalah contoh kerja lengkap menggunakan PDO dan termasuk tajuk kolom:
sumber
Pertama-tama buat data sebagai String dengan koma sebagai pembatas (dipisahkan dengan ","). Sesuatu seperti ini
sumber
Hei ini bekerja dengan sangat baik .... !!!! Terima kasih Peter Mortensen dan Connor Burton
?>
sumber
Metode sederhana -
Jadi setiap baris
$data
array akan menuju ke baris baru dari file CSV yang baru Anda buat. Ini hanya berfungsi untuk PHP 5 dan yang lebih baru.sumber
Anda cukup menulis data Anda ke CSV menggunakan fungsi fputcsv . mari kita lihat contoh di bawah ini. Tulis larik daftar ke file CSV
sumber
Cara termudah adalah dengan menggunakan kelas CSV khusus seperti ini:
sumber
Dari pada:
Menggunakan:
sumber
Sudah solusi yang sangat bagus datang. Saya hanya memasukkan kode total sehingga pemula mendapat bantuan total
Saya telah menyimpan kode ini di csv-download.php
Sekarang lihat bagaimana saya menggunakan data ini untuk mengunduh file csv
Jadi ketika saya mengklik tautan itu mengunduh file tanpa membawa saya ke halaman csv-download.php di browser.
sumber
Untuk mengirimnya sebagai CSV dan memberikannya nama file, gunakan header ():
http://us2.php.net/header
Sejauh membuat CSV itu sendiri, Anda hanya akan mengulang set hasil, memformat output dan mengirimkannya, sama seperti Anda akan konten lainnya.
sumber
Menulis kode CSV Anda sendiri mungkin membuang-buang waktu Anda, cukup gunakan paket seperti league / csv - ini berkaitan dengan semua hal yang sulit bagi Anda, dokumentasinya bagus dan sangat stabil / dapat diandalkan:
http://csv.thephpleague.com/
Anda harus menggunakan komposer. Jika Anda tidak tahu apa itu komposer, saya sangat menyarankan Anda melihatnya: https://getcomposer.org/
sumber
sumber
Bagaimana cara menulis dalam file CSV menggunakan skrip PHP? Sebenarnya saya juga mencari itu. Ini adalah jenis tugas yang mudah dengan PHP. fputs (handler, content) - fungsi ini bekerja secara efisien untuk saya. Pertama, Anda perlu membuka file di mana Anda perlu menulis konten menggunakan fopen ($ CSVFileName, 'wb').
sumber
Masukkan
$output
variabel data CSV dan gema dengan header yang benarsumber