在PHP中检测换行返回方法的最佳方法是什么。 CR,LF或CR + LF
如果可能的话,将其转换为指定的类型。
答案 0 :(得分:6)
define('NL_NIX', "\n");
define('NL_WIN', "\r\n");
define('NL_MAC', "\r");
function newline_type($string)
{
if (strpos($string, NL_WIN) !== false) {
return NL_WIN;
} elseif(strpos($string, NL_MAC) !== false) {
return NL_MAC;
} elseif(strpos($string, NL_NIX) !== false) {
return NL_NIX;
}
}
检查字符串中的换行符类型。没有找到换行符时返回0。
要标准化/标准化所有换行符,请使用以下函数:
function newline_convert($string, $newline)
{
return str_replace(array(NL_WIN, NL_MAC, NL_NIX), $newline, $string);
}
希望它有所帮助!
答案 1 :(得分:1)
这将测试换行符(CR或LF)的字符串:
function has_newline($string)
{
return (strpos($string, "\r") !== false || strpos($string, "\n") !== false);
}
(\r
表示CR,\n
表示LF)
您可以使用相同的思路来转换它们。例如,此函数将所有CR转换为给定字符串中的LF:
function replace_returns($string)
{
return str_replace("\r", "\n", $string);
}
答案 2 :(得分:1)
常量PHP_EOL
包含特定于平台的换行符。
答案 3 :(得分:0)
您可以执行$ string = nl2br($ string),以便将换行符更改为
<br />.
然后你可以操纵字符串,例如
的第一次出现将其分开了<br />
像这样:
list($first, $second) = explode('<br />', $string, 2);