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

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

有帮助吗?

解决方案

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);
}

希望它有所帮助!

其他提示

这将测试换行符(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);
}

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

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

<br />. 

然后你可以操纵字符串,例如

的第一次出现将其分开了
<br />
像这样:

list($first, $second) = explode('<br />', $string, 2);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top