php - 如何在CSV文件中保留反斜杠或者将它的改为空以生成SQL文件

  显示原文与译文双语对照的内容
0 0

我正在从CSV文件生成SQL文件,但是有一些字符串文件带有斜杠和值,如下所示:


"aaa","", 111, 222,"bbb","", 333

""之间的值将作为一个字符串生成


'", 111, 222,"bbb","', 333

但我希望尽可以能保持"",或者将它的改为 NULL,例如:


'NULL', 111, 222, 'bbb', 'NULL', 333

我的代码如下所示:


while (($lineArr = fgetcsv($infile))!=FALSE){
foreach($lineArr as $line){
...
if ($line == '"')
$line = 'NULL';
...
}
}

我认为 $line =='"' 不正确,但是我不知道如何处理""之间的整个部分。

解决方案:首先将 array 更改为字符串以处理'",然后将它更改为 array,以便进一步处理。


while (($lineArr = fgetcsv($infile))!=FALSE){
$string = implode(",", $lineArr);
 if (strpos($string,',",')){
 $sKeepSlash = str_replace(',",',",NULL,", $string);
 $pLineArr = explode(',', $sKeepSlash);
 }
 foreach($lineArr as $line){
. . .
}
}

时间: 原作者:

0 0

使用 fputcsv() 来写入,并使用 fgetcsv() 读取。

在这里找到:

原作者:
0 0

首先查找斜杠的位置。 例如你可以使用 array_keys

这将返回标记的位置。 你可以用它来组合


$marker_positions = array_keys($array,"marker");
for ($position = $marker_positions[0]+1; $position <$marker_positions[0]; $position++) {
 $single_string. = $array[$position];
}

原作者:
...