J'exporte des données dans un fichier CSV en utilisant fputcsv
. J'ai des chaînes qui sont en cours d'écriture, mais j'ai besoin que les données soient placées entre guillemets.Ajouter au devis CSV Export
foreach ($orderDetails['lines'] as $line) {
fputcsv($orderImportCsv, $line);
}
Cela crée les éléments suivants lors de l'ouverture dans un éditeur (sublime)
L, M3344, 100
L, M3356,, 50
Je dois avoir chacun de ces champs enveloppés dans des guillemets doubles.
J'ai donc essayé:
foreach ($lines as &$line) {
foreach ($line as &$column) {
$column = '"' . $column . '"';
}
}
Donc, essentiellement, cela devrait passer par chacun des champs de lignes et l'envelopper dans « ». Cependant, après l'exécution que je reçois la sortie suivante:
"" "L" "", "" "M3344" "", "" "" "" "" "100" ""
"" "l" "", "" "M3356" "", "" "" "" "" "50" ""
Il est en train de mettre 2 ensembles de guillemets doubles autour de la variable!
Y a-t-il une meilleure façon de procéder?
MISE À JOUR
Je sais que fputcsv
a deux paramètres facultatifs. Délimiteur et enceinte. Cependant je crois que l'enceinte par défaut à "" mais seulement quand la chaîne est divisée en mots séparés.
Bien qu'un travail autour de ce qui semble faire le travail. merci – iamjonesy
Cette solution de contournement fait certainement l'affaire, cependant, il est ennuyeux que fputcsv() ajoute des espaces supplémentaires autour de tout quand "" est utilisé comme paramètre $ enclosure, mais n'autorise pas une chaîne vide comme l'enceinte $ elle-même. – hberg