Php 从mysql insert语句中删除空白的正则表达式

Php 从mysql insert语句中删除空白的正则表达式,php,mysql,regex,csv,Php,Mysql,Regex,Csv,我使用fgetcsv()从CSV文件导入数据,这将为每行生成一个数组。然后我对这个数组进行内爆()并使用mysql\u real\u escape\u string()创建一个字符串,用于mysql查询。结果是这样的: \“2342352353\”、\“\”、\“\” 我正在读取的一些CSV文件最多有200多列(这是个奇迹,但却是真的),因此insert语句变得非常长。为了使它们不那么长,我想去掉insert语句中的空格或空格。因此,上述声明应成为: “2342352353\”, 因此,我正在寻

我使用fgetcsv()从CSV文件导入数据,这将为每行生成一个数组。然后我对这个数组进行内爆()并使用mysql\u real\u escape\u string()创建一个字符串,用于mysql查询。结果是这样的:

\“2342352353\”、\“\”、\“\”

我正在读取的一些CSV文件最多有200多列(这是个奇迹,但却是真的),因此insert语句变得非常长。为了使它们不那么长,我想去掉insert语句中的空格或空格。因此,上述声明应成为:

“2342352353\”,

因此,我正在寻找两种方法来解决这个问题。首先,我可以遍历数组,并使用trim()查找任何带有空格的条目,并将它们设置为空白。然后我可以对结果字符串执行str_replace(),如下所示:

for ($x=0; $x<sizeof($data); $x++) {
    $data[$x] = trim($data[$x]) == ''  ?  ''  :  $data[$x];
}
$insert_string = '\\"' . mysql_real_escape_string(implode('","', $data)) . '\\"';
str_replace('\"\"', '', $insert_string);
for($x=0;$x这个正则表达式怎么样

\\“\s*\\”

在上面的代码中使用:

preg\u replace(“/\\\”\s*\\\“/”,“$insert\u string);

\s*
匹配任意数量的空白字符


如果正则表达式比遍历你的CSV文件慢,我会吃我的帽子…

有几件事。首先,不要吃你的帽子!其次,我想你的意思是
preg\u replace()
而不是
str\u replace()
。第三,这个模式很接近,但出于某种原因,我不得不在模式内部划出双引号:
preg\u replace('/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
因为这是你在问题中使用的。我不熟悉PHP。我修正了上面的答案。好的。但是你知道为什么必须用双引号分隔吗?你在分隔
\
,而不是