【发布时间】:2016-10-26 13:40:03
【问题描述】:
我有一个表单,其中包含可以动态创建的输入集 -- see here。
为了将从这些输入中收集的值推送到.csv 工作表并将它们放在一个单元格中,我正在使用以下 PHP 函数。它从 3 个输入中收集内容,将其保存到单个单元格中的 .csv,并且对于每次新的输入迭代,它只是用“//”分隔条目,但将其保存在同一个单元格中(像这样: 总裁,2015,我是总裁// 副总裁,2014,我是副总裁)。
PHP
$provincialInvolvement = $_POST["provincialInvolvement"];
$provincialInvolvementValues = "";
$e = 0;
foreach($provincialInvolvement as $piValue)
{
$provincialInvolvementValues .= $piValue;
$e++;
if($e % 3 == 0)
{
$provincialInvolvementValues .= "//";
}
}
我的问题是因为最后一个输入是文本区域,如果输入换行符(有人按回车键)它会破坏 .csv 的形式并将其放在新行上。
我正在尝试在我的 PHP 部分中编写一个函数,当它将值记录到 $provincialInvolvementValues 时,它会删除任何换行符,但我没有运气。
这是函数的问题,它没有记录任何内容。
$provincialInvolvement = $_POST["provincialInvolvement"];
$provincialInvolvementValues = "";
$e = 0;
foreach($provincialInvolvement as $piValue)
{
$provincialInvolvementValues .= $piValue;
$e++;
$provincialInvolvementValues = preg_replace( "/(\r|\n)/ ", "", $provincialInvolvementValues );
return $provincialInvolvementValues;
if($e % 3 == 0)
{
$provincialInvolvementValues .= "//";
}
}
【问题讨论】:
-
也许试试这个:
preg_replace( "\r?\n\s*", "", $provincialInvolvementValues)- 换行符通常是\n或\r\n,所以这可能会更好。此外,return $provincialInvolvementValues;在循环中可能是错误的...... -
工作就像一个魅力!谢谢楼主!
-
很高兴它起作用了,我已将其添加为答案,因此您可以接受它,问题由此解决。
标签: php arrays regex csv line-breaks