\我正在从 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 =='\\"'
是不正确的,但我不知道如何处理“\”之间的整个部分。
解决方案:我先把数组改成字符串处理'"\"',然后再改回数组做进一步处理。
while (($lineArr = fgetcsv($infile))!=FALSE){
$string = implode(",", $lineArr);
if (strpos($string,',\",')){
$sKeepSlash = str_replace(',\",', ",NULL,", $string);
$pLineArr = explode(',', $sKeepSlash);
}
foreach($lineArr as $line){
...
}
}