\ je générer fichier SQL à partir du fichier CSV, mais ai quelques fichiers de chaîne avec des barres obliques et la valeur est comme:Comment garder backslash ou changer à NULL dans un fichier CSV pour générer un fichier SQL en PHP
"aaa", "\", 111, 222, "bbb", "\", 333
La valeur entre « \ » sera généré comme une seule chaîne
'\", 111, 222, "bbb", "\', 333
Mais j'espère garder « \ » comme il se doit d'être, ou le modifier à NULL, comme:
'NULL', 111, 222, 'bbb', 'NULL', 333
Mon code est comme ceci:
while (($lineArr = fgetcsv($infile))!=FALSE){
foreach($lineArr as $line){
...
if ($line == '\\"')
$line = 'NULL';
...
}
}
Cette dose ne fonctionnera pas. Je pense que $line =='\\"'
n'est pas correct, mais je ne sais pas comment traiter toute la partie entre "\".
solution: Je d'abord changer le tableau en chaîne pour traiter le "" \ "', puis le changer en tableau pour un traitement ultérieur.
while (($lineArr = fgetcsv($infile))!=FALSE){
$string = implode(",", $lineArr);
if (strpos($string,',\",')){
$sKeepSlash = str_replace(',\",', ",NULL,", $string);
$pLineArr = explode(',', $sKeepSlash);
}
foreach($lineArr as $line){
...
}
}
Pouvez-vous montrer le code que vous utilisez? – Perry
Ajouter un autre \ avant donc il y a 2 barres obliques inverses, comme "\\" – naththedeveloper
duplication possible de [Echapper pour CSV] (http://stackoverflow.com/questions/6325613/escaping-for-csv) – Martijn