【问题标题】:PHP - Preventing Line breaks in Dynamically Created Text areaPHP - 防止动态创建的文本区域中的换行符
【发布时间】: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


【解决方案1】:

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

另外,return $provincialInvolvementValues; 在循环中可能是错误的...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-24
    • 2014-04-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-14
    • 2023-03-14
    相关资源
    最近更新 更多