php - 如何在CSV文件中保留反斜杠或将其更改为NULL以在PHP中生成SQL文件

标签 php mysql csv

\我正在从 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, and fgetcsv() to read.

在这里找到:Escaping for CSV

关于php - 如何在CSV文件中保留反斜杠或将其更改为NULL以在PHP中生成SQL文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19268628/

相关文章:

php - 仅当字段的旧值与新值不匹配时才使用 CASE 语句更新 MySQL 记录?

php - 使用多个 Dropdown 创建动态 MySQL Statement 并生成

MYSQL order by 坚持使用filesort

linux - 如何用bash脚本替换字符串并写回结果

javascript - 我尝试通过数据库验证数据以使用 Bootstrap 模式和 ajax 与 PHP 登录,但它不起作用

PHP5.3 : How to use PDO singleton class (indirectly) from the main source code

mysql - 如何创建 View ,以便在基表更改时它们也会更改?

sql - liquibase 在插入 sql 语句的 csv 行的所有值周围加上单引号

java - 逐列写入 CSV 文件

javascript - 保存Nodelist并通过js数组访问