2016-10-26 17 views
0

我有一组可以动态创建的输入表单 - see herePHP - 在动态创建的文本区域中防止换行符

为了将从这些输入收集的值推送到.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 .= "//"; 
      } 

    } 

我的问题是,因为最后的输入是一个textarea,如果一个换行符被放在(有人打回车键),它打破了.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 .= "//"; 
      } 

    } 
+1

也许试试这个:'的preg_replace( “吗?\ r \ n \ S *”, “”,$ provincialInvolvementValues)' - 换行通常是' \ n'或'\ r \ n',这样可能会更好。此外,'return $ provincialInvolvementValues;'在循环中可能是错误的... – Lucero

+0

工作就像一个魅力!谢谢你,先生! –

+0

很高兴它的工作,我已经添加它作为答案,所以你可以接受它的问题解决了。 – Lucero

回答

1

也许试试这个:preg_replace("\r?\n\s*", "", $provincialInvolvementValues) - 换行通常是\n\r\n所以这可能会更好地工作。

此外,return $provincialInvolvementValues;处于环路可能是错的...

相关问题