\我正在从 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){
...
}
}
最佳答案
Use
fputcsv()
to write, andfgetcsv()
to read.
在这里找到:Escaping for CSV
关于php - 如何在CSV文件中保留反斜杠或将其更改为NULL以在PHP中生成SQL文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19268628/