Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确定PHP中的换行符返回方法_Php_Newline - Fatal编程技术网

确定PHP中的换行符返回方法

确定PHP中的换行符返回方法,php,newline,Php,Newline,在PHP中检测换行符返回方法的最佳方法是什么。CR、LF或CR+LF 如果可能,将其转换为指定类型。这将测试字符串的换行符(CR或LF): (\r表示CR,\n表示LF) 你可以用同样的想法来转化他们。例如,此函数将所有CR转换为给定字符串中的LFs: function replace_returns($string) { return str_replace("\r", "\n", $string); } 检查字符串中的换行符类型。未找到换行符时返回0 要规范化/标准化所有换行符,请

在PHP中检测换行符返回方法的最佳方法是什么。CR、LF或CR+LF


如果可能,将其转换为指定类型。

这将测试字符串的换行符(CR或LF):

\r
表示CR,
\n
表示LF)

你可以用同样的想法来转化他们。例如,此函数将所有CR转换为给定字符串中的LFs:

function replace_returns($string)
{
    return str_replace("\r", "\n", $string);
}
检查字符串中的换行符类型。未找到换行符时返回0

要规范化/标准化所有换行符,请使用以下函数:

function newline_convert($string, $newline)
{
    return str_replace(array(NL_WIN, NL_MAC, NL_NIX), $newline, $string);
}

希望有帮助

常量
PHP_EOL
包含特定于平台的换行符。

您可以执行$string=nl2br($string),以便将换行符更改为

<br />. 

然后您可以操纵字符串,例如,通过第一次出现

<br />

像这样:

list($first, $second) = explode('<br />', $string, 2);
list($first,$second)=分解('
',$string,2);
我认为您编写的replace_returns($string)在跨平台上运行良好。想象一下\r\n(Windows中的单个换行符),它将被转换为\n\n(*nux中的两个换行符!)我理解你的观点,但我的目的不是想象OP的每个情况,而是为他指出正确的方向。我喜欢你函数的想法,但它们有点冗长。在换行类型中,为什么不在每个
if
之后返回
,而不是将其存储为
$result
?然后只
返回0在末尾。不需要变量。使用
newline\u convert
,为什么不将
返回str\u replace…
?@Josh-拆分代码是一种很好的做法。更容易调试什么的。我已经习惯了,因为我学到了教训——找出哪里出了问题等等。如果你把它们合并成一行也没关系,但是“良好实践”和不必要的冗长是有区别的。例如,在第一个函数中,您创建了一个全新的变量来存储不需要存储的内容。我看不出(在这种情况下)它是如何让事情变得更清楚的;如果有什么不同的话,那只是让事情变得更复杂。只是一些值得思考的东西哦,更新得很好。我希望使用单个返回并将返回值存储到
$result
中的原因是我认为可以检测多个换行符类型并进行组合。e、 g.如果字符串中有“\r\n”和“\n”,它将返回
(2和4)
。这是最好最简单的检查方法。我使用以下代码来分隔textarea的行:$somearray=explode(PHP_EOL,$sometext);请注意,文本区域的行数取决于客户端换行符。因此,在这种情况下,我不建议您使用
PHP\u EOL
<br />
list($first, $second) = explode('<br />', $string, 2);