使用 PHP 检测文本区域中的回车符/换行符


Detect a carriage return/new line in a text area with PHP

如何在

PHP 的文本区域中检测回车符/换行符?

我想在将它们存储在数据库中之前用<br />标签替换它们。

有一个 php 常量:

何时使用 PHP 常量"PHP_EOL"?

还要研究nl2br().

我的建议是:"不要这样做"。只需将换行符存储在数据库中,但仅在生成输出时将其呈现为<br />。否则,当您想在不同的上下文中使用该数据时,您将遇到替换<br />的问题。

为此,您可以使用nl2br请参阅:http://php.net/manual/en/function.nl2br.php

只是nl2br它;)

PS:插入数据库时不要应用函数(这里只使用SQL转义)。一旦您想要将文本输出为 HTML,请立即应用该函数。

我知道

这是 v-old,但只是想在这里做个笔记,甚至可能是为了我自己!这里的 eol 需要用双引号引起来,否则它就行不通了。见下文...

$eols = array(",","'n","'r","'r'n");
$text_area = str_replace($eols,'<br />',$_POST['text_area']);

希望这能帮助某人不要像我刚刚做的那样浪费时间 30 分钟!

你可以使用 nl2br()。请注意,它会将'n'r'n转换为<br />'n

您可以使用

nl2br()函数。 这将根据需要插入<br/>

通常,我倾向于将HTML格式排除在数据库之外(除非它在源材料中)。 您永远不知道何时可能要将干净版本用于其他目的。

试试这个:

$text_area = str_replace(PHP_EOL,'<br/>', $text_area);

使用str_replace