par Vincy. Dernière modification le 23 janvier 2023.
Ce tutoriel consiste à convertir un tableau PHP en un fichier ou format CSV. Il contient deux exemples d’implémentation de cette conversion.
- Un exemple rapide est celui qui analyse un ensemble de données de tableau PHP en un CSV et imprime les données CSV sur le navigateur.
- Un autre exemple consiste à convertir le tableau de la base de données en CSV et à télécharger le fichier .csv.
Exemple 1 : exemple rapide
Le code ci-dessous utilise le PHP fputcsv() fonction pour convertir le tableau en CSV. Cette fonction nécessite les arguments suivants à spécifier.
- Un fichier CSV cible.
- Itération du tableau pinter pour mettre la ligne CSV.
- Délimiteur de données.
- Enceinte de données.
<?php
$array = array(
array(100, 200, 300, 400, 500),
array('Lion', 'Tiger', 'Elephant', 'Horse', 'Dog "Domestic"'),
);
$csvDelimiter=",";
$csvEnclosure=""";
// to physically write to a file in disk
$csvFile = fopen('example.csv', 'w+');
// to write to temp
$csvFile = fopen('php://temp', 'r+');
foreach ($array as $line) {
fputcsv($csvFile, $line, $csvDelimiter, $csvEnclosure);
}
rewind($csvFile);
// to display CSV file contents on browser
$contents="";
while (!feof($csvFile)) {
$contents .= fread($csvFile, 8192);
}
fclose($csvFile);
echo $contents;
?>
Cet exemple rapide crée un tableau d’entrée pour la conversion en CSV. Il s’agit d’un tableau multidimensionnel contenant l’ensemble de données.
Ce code définit le délimiteur et l’enceinte avant de convertir le tableau d’entrée.
Il itère le tableau et appelle fputcsv() à chaque itération pour former la ligne de données.
Obtenez le code de l’article lié si vous souhaitez convertir CSV en tableau PHP.
Exemple 2 : Convertir le tableau de résultats de la base de données en CSV pour le télécharger
Ce code PHP est d’apprendre à convertir un tableau de données de la base de données en CSV. Auparavant, nous avons vu comment gérer CSV en PHP pour lire, écrire, importer et exporter des opérations avec une base de données.
Dans cet exemple, le code connecte la base de données et lit les résultats dans un tableau. Ensuite, il crée un flux de sortie de fichier PHP pour mettre les données CSV ligne par ligne.
Tout d’abord, le code définit le tableau des en-têtes de colonne. Ensuite, il itère le tableau de résultats de la base de données et appelle fputcsv() sur chaque ligne de données.
L’en-tête PHP () est défini avec le demande/csv pour télécharger le fichier CSV dans le navigateur.
<?php
// PHP code will connect to a database
// Read from a table and get result
// Formulate the result as an array to use in a convenient form
// Iterate the array
// Use PHP's function fputcsv and write the array elements
// to a CSV file
// Then push that CSV file as download
$mysqli = new mysqli("localhost", "root", "", "db_phppot_examples");
$i = 0;
$query = "SELECT id, name, type FROM tbl_php_array_to_csv";
if ($resultArray = $mysqli->query($query)) {
while ($record = $resultArray->fetch_array()) {
$animalArray[$i]['id'] = $record['id'];
$animalArray[$i]['name'] = $record['name'];
$animalArray[$i]['type'] = $record['type'];
$i++;
}
}
$fileOut = fopen("php://output", 'w') or die("Unable open php://output");
// Header forces the CSV file to download
header("Content-Type:application/csv");
header("Content-Disposition:attachment;filename=example-csv.csv");
// writing the first CSV record as the column labels
// Refer: https://www.php.net/manual/en/function.fputcsv.php
fputcsv($fileOut, array('id', 'name', 'type'));
// writing array elements as CSV file records one by one
foreach ($animalArray as $animal) {
fputcsv($fileOut, $animal);
}
fclose($fileOut) or die("Unable to close php://output");
?>
Script de base de données
Ce script de base de données importe la structure et les données de la table pour exécuter cet exemple.
Vous pouvez également essayer ce code avec une table de base de données différente. Il ne nécessite que des modifications mineures du code pour modifier les noms de colonne de la nouvelle table.
--
-- Database: `db_phppot_examples`
--
-- --------------------------------------------------------
--
-- Table structure for table `tbl_php_array_to_csv`
--
CREATE TABLE `tbl_php_array_to_csv` (
`id` int NOT NULL,
`name` varchar(255) NOT NULL,
`type` varchar(255) NOT NULL
);
--
-- Dumping data for table `tbl_php_array_to_csv`
--
INSERT INTO `tbl_php_array_to_csv` (`id`, `name`, `type`) VALUES
(1, 'Lion', 'Wild'),
(3, 'Dog', 'Domestic'),
(4, 'Tiger', 'Wild');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `tbl_php_array_to_csv`
--
ALTER TABLE `tbl_php_array_to_csv`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `tbl_php_array_to_csv`
--
ALTER TABLE `tbl_php_array_to_csv`
MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
Utilisations du tableau PHP en conversion CSV
(1) Exportation de table de base de données
Nous pouvons utiliser cette base de données d’exportation de code vers un fichier CSV. C’est pour faire une sauvegarde d’une table de base de données.
Si vous souhaitez créer un programme PHP pour effectuer une sauvegarde complète de la base de données dans un fichier Excel, l’article lié contient le code.
(2) Formater les données dans une valeur séparée par des virgules
Il aide à convertir diverses sources de données et à créer un muet dans un format CSV unifié.
En cas de chargement de plus de données d’un tableau dans un CSV existant, ce code sera utile.
Télécharger
↑ Haut de page