OUJOOD.COM
Disponible depuis PHP 5.3.0, str_getcsv() analyse une chaîne de caractères au format CSV et retourne un tableau contenant les champs extraits. Elle fonctionne comme fgetcsv(), à la différence qu'elle prend une chaîne en entrée plutôt qu'un pointeur de fichier — ce qui la rend idéale pour traiter des données CSV reçues via une API, un formulaire ou stockées en base de données.
Syntaxe
str_getcsv( string $input, string $delimiter = ',', string $enclosure = '"', string $escape = '\\' )
Paramètres
| Paramètre | Description |
|---|---|
$input |
La chaîne CSV à analyser. Obligatoire. |
$delimiter |
Le caractère séparant les champs. Par défaut la virgule ,. Doit être un seul caractère. |
$enclosure |
Le caractère qui entoure les champs contenant des caractères spéciaux (espaces, délimiteurs...). Par défaut le guillemet double ". |
$escape |
Le caractère d'échappement pour protéger les guillemets à l'intérieur d'un champ. Par défaut l'antislash \. |
Exemples
Exemple 1 : usage de base
On passe directement une ligne CSV sous forme de chaîne. La fonction retourne un tableau indexé contenant chaque champ.
<?php
$ligne = "Jean,Dupont,jean.dupont@example.com,35";
$champs = str_getcsv($ligne);
print_r($champs);
/*
Array
(
[0] => Jean
[1] => Dupont
[2] => jean.dupont@example.com
[3] => 35
)
*/
?>
Exemple 2 : délimiteur personnalisé
Quand les champs sont séparés par un point-virgule (format courant en Europe), on passe ; comme deuxième argument.
<?php
$ligne = "Jean;Dupont;jean.dupont@example.com;35";
// Point-virgule comme délimiteur
$champs = str_getcsv($ligne, ';');
print_r($champs);
?>
Exemple 3 : traiter un bloc CSV multi-lignes
str_getcsv() traite une ligne à la fois. Pour un fichier ou une chaîne multi-lignes, on découpe d'abord par retour à la ligne avec explode(), puis on applique str_getcsv() à chaque ligne.
<?php $csv = "Jean,Dupont,35\nAmal,Sami,28\nPierre,Jolie,42"; // Découper le bloc en lignes, puis analyser chacune $lignes = explode("\n", $csv); foreach ($lignes as $ligne) { $champs = str_getcsv($ligne); echo "Prénom : {$champs[0]}, Nom : {$champs[1]}, Âge : {$champs[2]}\n"; } /* Prénom : Jean, Nom : Dupont, Âge : 35 Prénom : Amal, Nom : Sami, Âge : 28 Prénom : Pierre, Nom : Jolie, Âge : 42 */ ?>
Par carabde | Mis à jour le 16 mai 2026