首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在CSV文件中保留反斜杠或将其改为NULL在PHP中生成SQL文件

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

Stack Overflow用户
提问于 2013-10-09 17:50:56
回答 2查看 127关注 0票数 0

\我正在从CSV文件生成SQL文件,但有一些带斜杠的字符串文件,其值如下:

代码语言:javascript
复制
 "aaa", "\", 111, 222, "bbb", "\", 333

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

代码语言:javascript
复制
'\", 111, 222, "bbb", "\', 333

但我希望将"\“保持原样,或将其更改为NULL,如:

代码语言:javascript
复制
'NULL', 111, 222, 'bbb', 'NULL', 333

我的代码是这样的:

代码语言:javascript
复制
while (($lineArr = fgetcsv($infile))!=FALSE){
foreach($lineArr as $line){
...
if ($line == '\\"')
$line = 'NULL';
...
}
}

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

解决方案:首先将数组更改为字符串以处理'"\"',然后将其更改回数组以进行进一步处理。

代码语言:javascript
复制
while (($lineArr = fgetcsv($infile))!=FALSE){
$string = implode(",", $lineArr);
    if (strpos($string,',\",')){
        $sKeepSlash = str_replace(',\",', ",NULL,", $string);
        $pLineArr = explode(',', $sKeepSlash);
    }
    foreach($lineArr as $line){
    ...
}
}
EN

Stack Overflow用户

发布于 2013-10-09 21:02:46

首先找到斜杠的位置。例如,您可以使用array_keys

这将返回标记的位置。然后您可以使用它来组合

代码语言:javascript
复制
$marker_positions = array_keys($array, "marker");
for ($position = $marker_positions[0]+1; $position < $marker_positions[0]; $position++) {
    $single_string .= $array[$position];
}
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19268628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档