Textarea成阵或内爆?

时间:2011-01-12 06:50:50

标签: php

假设我有一个文本区域,用户输入的信息与下面的样式完全相同:

Ice cream
Chocolate

然后提交此信息,我想完全检索信息:

Ice cream, Chocolate

这是最好的方法:

$arr = explode("\n", $var);
$arr = implode(",", $arr);

当这样做时,它会像以下那样输出信息:

Ice cream , Chocolate

注意奶油之后的空间,只需要一个简单的trim()来解决这个问题吗?

4 个答案:

答案 0 :(得分:7)

$text = preg_replace("~\s*[\r\n]+~", ', ', $text);

答案 1 :(得分:1)

不要在db中存储修改后的数据,只需存储原始数据,这样当您将其呈现给用户时,他们可以轻松编辑它们。

就显示它们而言,当您向用户的浏览器显示输出时,使用上面 zrekms 所提到的正则表达式

$text = preg_replace("~\s*[\r\n]+~", ', ', $text);

以上就足够了。

哦BTW对于那些想要爆炸新线但不知道如何因为它们在每个操作系统上都不同而不是这样做的人......

$arr = explode("\n", $var);
$arr = explode("\r\n", $var);
$arr = explode("\r", $var);

只需使用

$arr = explode(PHP_EOL, $var);

PHP_EOL等同于新行char及其独立操作系统。

答案 2 :(得分:0)

只是一个猜测,但爆炸中的“\ r \ n”会纠正这个问题吗?我知道在基于Windows的机器中,新的一行就是这样。

答案 3 :(得分:-2)

您可以将preg_split与正则表达式一起使用:

http://php.net/manual/en/function.preg-split.php