换行符文本区域的字符分隔符


character separator for newline textarea

显而易见:

'n = CR (Carriage Return) // Used as a new line character in Unix
'r = LF (Line Feed) // Used as a new line character in Mac OS
'r'n = CR + LF // Used as a new line character in Windows
(char)13 = 'n = CR // Same as 'n

但后来我也听说,对于HTML文本区域,当它被php脚本提交和解析时,所有新行都被转换为''r''n,而不考虑平台

这是真的吗?我能相信这一点吗?还是我完全错了?

即。如果我想基于新行执行explode(),无论用户是否使用mac、pc等,我都可以使用'''r''n'作为分隔符吗?

规范应在'r'n中转换所有换行符

因此,无论使用什么平台,您都可以执行简单的explode("'r'n", $theContent)

p.S.

'r仅在旧的Mac上使用。如今,Mac电脑也使用*nix风格的换行符('n)。

您可以尝试preg_split,它将使用正则表达式来拆分字符串。在这个正则表达式中,您可以在所有3个新行变体上进行匹配。

$ArrayOfResults = preg_split( '/'r'n|'r|'n/', $YourStringToExplode );

这取决于您想要实现的目标。如果您最终要将其显示/格式化为HTML,那么您也可以使用nl2br()函数,或者可能使用如下str_replace:

$val = str_replace( array("'n","'r","'r'n"), '<br />', $val );

如果你只想得到一个所有行的数组,我建议你使用所有3个字符("''n","''r","''r''n")来分解